0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

40代おっさんFastAPIを勉強する(簡易Web API作成)

Posted at

本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

簡単な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キーなどの設定も書かれている。

参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?