本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。
簡単なAPIを作って、ローカル環境で試す
main.pyを作成
from fastapi import FastAPI
from pydantic import BaseModel
class Data(BaseModel):
x: float
y: float
app = FastAPI()
@app.get('/')
def index():
return {'message': 'Hello Data'}
@app.post('/')
def calc(data: Data):
z = data.x*data.y
return {'result': int(z)}
sample.py作成
import requests
import json
def main():
url = 'http://127.0.0.1:8000'
data = {
'x': 1.2,
'y': 3.0
}
res = requests.post(url, json.dumps(data))
print(res.json())
if __name__ == '__main__':
main()
Deta
Herokuのような無料で使えるクラウドサービスで、クレカ登録も必要ないので安心して使うことができます。Detaには現在、以下の3つのサービスがあります。
Deta Base:機能豊富なAPIを備えたすぐに使用できるNoSQLデータベース。
Deta Micros:スケーラブルなNode.jsおよびPythonアプリを数秒でデプロイします。
Deta Drive:画像とファイルをアップロード、ホスト、提供します。
実践
Detaに登録
とりあえず、初めての方はDetaにユーザー登録を
https://www.deta.sh/?ref=fastapi
requirements.txtを作成
次に
先ほど作ったmain.pyと同じフォルダ内に作成
requirements.txt
を作成
fastapi
ライブラリの情報を書く
CLIのインストール
自分はwindowsなので
iwr https://get.deta.dev/cli.ps1 -useb | iex
インストールしたら再起動(ターミナル閉じるだけではダメでした…)
成功したか確認
deta --help
こちらがうまく行ったらとりあえず大丈夫です。
CLIでログイン
deta login
Deta でデプロイ
かならず実行フォルダに移動
deta new
{
"name": "fastapideta",
"runtime": "python3.7",
"endpoint": エンドポイント,
"region": "eu-central-1",
"visor": "disabled",
"http_auth": "disabled"
}
となれば成功
これでエンドポイントにアクセスすると確認が出来ます。
他色々
Micros
Read tha docs
を見ると色々書かれているので参照
APIキーなどの設定も書かれている。
参考