はじめに
今回は、detaを使ってAPIを作成していきたいと思います。
Herokuの代替サービスとしてました。だいぶ使用が変わっているのか、いい資料がなかったので書かせてもらいます。
参考にしていただければ幸いです。また、間違っている部分があれば、ぜひご指摘ください!
サインアップ
- Usernameを入力
- Emailを入力
- Passwordを入力
必須条件が以下の三つあります。- 番号が含まれいていること
- 特殊文字が含まれていること
- 大文字と小文字が含まれていること
- Enable Developer Modeをオンにする
- Begin your journey をクリック
- 認証用のメールが届くので、
Verify Email
をクリック - サインインをする
- 以下の画面になるまで進める
AccessTokenの発行
- ウィンドウ下部にある
Type a command or search
をクリックしてSettings
と入力してEnter - このような画面が出てくるので、
Generate Token
をクリック
-
Your new token:
がAccess Tokenになります。後で使うので、どこかへコピペしておいてください。
⚠️ The token will not be shown to you again, store it somewhere safe!
と書いてある通りAccess Tokenはこの画面を離れたら再度見ることはできないので注意‼
CLIのインストール
OSによってコマンドが違います。
windows
iwr https://get.deta.dev/space-cli.ps1 -useb | iex
MacOS/Linux
curl -fsSL https://get.deta.dev/space-cli.sh | sh
ログイン
こちらは、どのOSも共通です。
space login
アプリの作成
-
以下を実行
Terminalspace new
-
プロジェクト名を入力
? What is your project's name? >
フォルダ名でOKな場合はそのままEnterを押す
適当なAPIアプリの作成
Fastapiを使用して簡単なAPIアプリを作ります。
ファイル構成
│ .gitignore
│ Spacefile
│
├─.space
│ meta
│ README
│
└─api
main.py
requirements.txt
main.pyの中身
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
requirements.txtの中身
fastapi
参考
FastAPI
構成の記述
Spacefileの中身
v: 0
micros:
- name: simple-api
src: ./api
engine: python3.9
詳しい書き方についてはこちらを参照
https://deta.space/docs/en/basics/micros#whats-a-micro
デプロイ
detaでは、デプロイではなくpushというらしいですね…
以下を実行
space push
最後のほうに
とでたら、成功です‼
そのすぐあとに記載されている、URLを踏むと、こんな感じで動いていることが確認できます。
このページのURLの後に/docs
を付けることでFastAPIのドキュメントページも見ることができます。
おわりに
アプリのデプロイまで数分で使えるので、とても便利ですね。
応答速度等は無料で使えるものなのでほかに劣るかもしれませんが、無料でいろいろできるので、学生にはいいですね。
参考にした記事