taikis / fib-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fibonacci数列API

How to debelop

  1. make up
  2. make shell
  3. cd src
  4. uvicorn main:app --reload --host 0.0.0.0 --port 8080
  5. http://0.0.0.0:8080/fib?n=1へアクセス
  6. 下記が表示されればOK
{
  "result": 1
}

仕様

使用方法

ドキュメントを参照

構成

  • Python 3.11
  • FastAPI
  • Docker
  • pytest(UT用)

動作環境

  • GCP Cloud Run

処理の流れ

  • FastAPIによりGETリクエストの受け取り
  • 値に対する各種バリデーションを行う
    • 0以上
    • 整数値
    • 結果が4300桁以下(後述)
  • 実際の計算はsympy.fibonacci関数が行う

各種制約

  • 処理結果が4300桁以下
    • 一定以上のバージョンのPythonは4300桁以上の文字列↔︎整数変換ができない
    • これについてはQiita記事で解説した
  • リクエストが99999以下
    • 実際の処理部分は上記影響を受けず、計算が行われる
    • 今後のPythonの改善によって、文字列↔︎整数変換ができるようになった場合、サーバーの処理速度を考えた制限を加えたいため

About

License:MIT License


Languages

Language:Python 90.9%Language:Makefile 5.8%Language:Dockerfile 3.3%