Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Smaregi Tech Talk #1 REST API

non_z250
October 16, 2019

Smaregi Tech Talk #1 REST API

実務でつまずくREST API

non_z250

October 16, 2019
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 2 @non_z250 non’s Labo ( https://labo.nozomi.bike/ ) PHP /

    Laravel / CakePHP / Vue / Nuxt / C# Bike: Z250
  2. REST API 5 よくあるやつ products [ GET ] api/products (参照)

    [ POST ] api/products (登録) [ PUT ] api/products/{:id} (更新) [ GET ] api/products/{:id} (参照) [ DELETE ] api/products/{:id} (削除) [ GET ] api/products/{:id},{:id},{:id}(参照)
  3. REST API 11 tasks notes tasks_notes tasks - タスク notes

    - ノート tasks_notes - 中間テーブル
  4. todo REST API 14 tasks notes tasks_notes [ POST ]

    api/todo { “task”: “新しいアプリを作る”, “note”: “LINE Bot を使いたい”, “status”: “1” }
  5. [ POST ] api/notesのResponse { “id”: “1”, “note”: “LINE Bot

    を使いたい”, “status”: “1” } 17 REST API tasks notes tasks_notes
  6. [ POST ] api/notesのResponse { “id”: “1”, “note”: “LINE Bot

    を使いたい”, “status”: “1” } [ POST ] api/tasks { “id”: “1”, “task”: “新しいアプリを作る”, “status”: “1”, “note_id”: “1” } 18 REST API tasks notes tasks_notes
  7. REST API 21 図書館API https://calil.jp/doc/api.html ISBNが元になっている。 専用データベースや、jsライブ ラリも提供している。 https://www.ndl.go.jp/jp/us e/api/index.html

    国立国会図書館の公式サー ビス。 加盟する全国の図書館から情 報を取得できる。 http://crd.ndl.go.jp/referenc e/ 国立国会図書館に関連する 組織のAPI。 カーリル 国立図書館API レファレンス協同 データベース
  8. REST API 25 検索サービス [ GET ] api/search { “users”:

    { “name”: “Z250”, }, “tasks”: { “task”: “Z250” }, “notes”: { “note”: “Z250” } }
  9. REST API 26 検索サービス [ GET ] api/search?q=Z250 [ POST

    ] api/search [ PUT ] api/search [ DELETE ] api/search は無い
  10. 200 OK - GET, PUT, PATCH, DELETE リクエストが成功した場合に応答。もしくは、 POST リクエストが結果的に何もリソースを作らなかった場合に応答。

    201 Created - POST リクエストがリソース作成に成功した場合に応答。なお、そのリソースへのリンクを Location ヘッダに含める必要がある。 204 No Content - 成功したDELETE リクエストで、ボディを返したくない場合に応答 301 Moved Permanently - 恒久的移動 304 Not Modified - HTTP キャッシュが有効な場合に応答 400 Bad Request - パース不可能なリクエストボディが来た場合に応答 401 Unauthorized - 認証がされていない、もしくは不正なトークンの場合に応答 403 Forbidden - 認証はされているが、認可されていないリソースへのリクエストに応答 404 Not Found - 存在しないリソースへのリクエストに応答 405 Method Not Allowed - 認可されていないメソッドでのリクエストに応答 410 Gone - 今は存在しないリソース(廃止された APIなど)で空要素を返す場合などに応答 415 Unsupported Media Type - 対応していない MediaType が指定された場合に応答 422 Unprocessable Entity - バリデーションエラーに対して応答 429 Too Many Requests - 回数制限をオーバーしたリクエストに対して応答 REST API 31
  11. REST API 32 エラーレスポンス [ GET ] api/users/99999999 HTTP_STATUS_CODE: 404

    { “message”: “このIDは存在しません” }