2
3

More than 1 year has passed since last update.

deta.spaceでAPIを作成する

Last updated at Posted at 2023-05-17

はじめに

今回は、detaを使ってAPIを作成していきたいと思います。
Herokuの代替サービスとしてました。だいぶ使用が変わっているのか、いい資料がなかったので書かせてもらいます。
参考にしていただければ幸いです。また、間違っている部分があれば、ぜひご指摘ください!

サインアップ

こちらへアクセスしてください。
image.png

  1. Usernameを入力
  2. Emailを入力
  3. Passwordを入力
    必須条件が以下の三つあります。
    • 番号が含まれいていること
    • 特殊文字が含まれていること
    • 大文字と小文字が含まれていること
  4. Enable Developer Modeをオンにする
    image.png
  5. Begin your journey をクリック
  6. 認証用のメールが届くので、Verify Emailをクリック
  7. サインインをする
  8. 以下の画面になるまで進める
    image.png

AccessTokenの発行

  1. ウィンドウ下部にあるType a command or searchをクリックしてSettingsと入力してEnter
  2. このような画面が出てくるので、Generate Tokenをクリック
    image.png
  3. Your new token:がAccess Tokenになります。後で使うので、どこかへコピペしておいてください。

⚠️ The token will not be shown to you again, store it somewhere safe!と書いてある通りAccess Tokenはこの画面を離れたら再度見ることはできないので注意‼

CLIのインストール

OSによってコマンドが違います。

windows

PowerShell
iwr https://get.deta.dev/space-cli.ps1 -useb | iex

MacOS/Linux

Terminal
curl -fsSL https://get.deta.dev/space-cli.sh | sh

ログイン

こちらは、どのOSも共通です。

Terminal
space login

アプリの作成

  1. 以下を実行

    Terminal
    space new
    
  2. プロジェクト名を入力

     ? What is your project's name? >
    

    フォルダ名でOKな場合はそのままEnterを押す

適当なAPIアプリの作成

Fastapiを使用して簡単なAPIアプリを作ります。

ファイル構成

  
│  .gitignore
│  Spacefile
│
├─.space
│      meta
│      README
│
└─api
        main.py
        requirements.txt

main.pyの中身

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の中身

requirements.txt
fastapi

参考

FastAPI

構成の記述

Spacefileの中身

Spacefile
v: 0
micros:
  - name: simple-api
    src: ./api
    engine: python3.9

詳しい書き方についてはこちらを参照
https://deta.space/docs/en/basics/micros#whats-a-micro

デプロイ

detaでは、デプロイではなくpushというらしいですね…

以下を実行

Terminal
space push

最後のほうに
image.png
とでたら、成功です‼
そのすぐあとに記載されている、URLを踏むと、こんな感じで動いていることが確認できます。
image.png

このページのURLの後に/docsを付けることでFastAPIのドキュメントページも見ることができます。
image.png

おわりに

アプリのデプロイまで数分で使えるので、とても便利ですね。
応答速度等は無料で使えるものなのでほかに劣るかもしれませんが、無料でいろいろできるので、学生にはいいですね。

参考にした記事

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