5
3

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.

CDLE youthAdvent Calendar 2022

Day 3

API設計 ハンズオン

Last updated at Posted at 2022-12-02

初めに

簡単なAPIをPythonのFastAPIを使用して作っていきます!
デプロイするところまでをハンズオン形式で進めていきます!

セットアップ

私の環境はmacなのでmacで説明します!
pythonをまだインストールしていない人はbrew経由でインストールします

brew install python

任意のディレクトリに移動し、今回作成するディレクトリを作成します

cd dev
mkdir fastapi_pj
cd fastapi_pj

pythonの仮想環境にvenvを用います

python3 -m venv env_api # env_api は任意名

fast_apiディレクトリを作成します

mkdir fast_api
cd fast_api

fast_apiに仮想環境を適応させます。

source ../env_api/bin/activate

必要なライブラリをインストールします。

pip3 install uvicorn
pip3 install fastapi
pip3 install gunicorn
pip freeze -> requirements.txt

fastapi

ここまで来たら、fast_apiをエディタで開き、main.pyをディレクトリ内に作成します

main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def hello_word():
  return {"Hello":"World!"}

ターミナルで以下のコマンドを実行します

ターミナル
uvicorn main:app  --reload
>
INFO:     Will watch for changes in these directories: ['']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [14446] using StatReload
INFO:     Started server process [14448]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

ブラウザでhttp://127.0.0.1:8000を入力すると
スクリーンショット 2022-12-02 21.59.27.png

と表示されます.
ここまで来たら一度githubにpush挙げましょう。

デプロイ

デプロイ環境を設定します

https://render.com/

render.comを使用してみます。

render.comでGET STARTED FOR FREEでGitHub認証で新規登録します。
a.png
RenderのDashboardからNew Web Serviceをクリックします
スクリーンショット 2022-12-03 0.00.52.png

DeployしたいRepositoryのConnectボタンをクリックします
スクリーンショット 2022-12-03 0.08.55.png

任意のService nameの入力 + Regionの選択 + Start commandの入力します

↓ Start command

gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app

Create Web Service ボタンでDeploy開始します

終わりに

これで終了です!できたurlから各自動作を試してみてください!
今回は簡単なAPIでしたが、ぜひ皆さんでもっと複雑なAPIを作ってみてください!

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?