- APIをバージョン管理する
- URIのバージョンを埋め込む
- URIのパスの一番先頭につけるのが一般的
v
を先頭につけることでバージョンとはっきり分かる
- バージョンをクエリ文字列に入れる
- パスとクエリ文字列の違いは、それが省略可能であること
- デフォルトでは最新バージョンか下位バージョンはサービス次第
- クエリ文字列に含めると見た目が冗長になるのでパスのほうが良い
- メディアタイプでバージョンを指定する
- メディアタイプとはHTTPではContent-Typeヘッダーを指定する値のこと
- レスポンスコード、メッセージヘッダ、メディアタイプ一覧表
- JSONは application/json, XMLはapplication/xml
- メディア・タイプを使ってバージョンを指定する場合は、クライアントからのリクエストの際にバージョン番号を含むメディアタイプをAcceptヘッダーに入れてサーバー送信をする
- Accept: application/vnd.example.v2+json
- サーバー側では要求されたメディア・タイプを元にレスポンスを生成し、それをクライアントに返す。その際にはContent-TypeとVaryヘッダーを返す。(これはめんどいな・・・)
- Content-Type: application/vnd.example.v2+json
- Vary: Accept
- Content-Typeが完全にapplication/jsonと一致していないとJSONと判断してくれないクライアントライブラリもあって独自のメディアタイプをエラーと認識してしまう危険性も有り
- メディアタイプとはHTTPではContent-Typeヘッダーを指定する値のこと
- どの方法を採用するべきか
- もっとも利用されているのはURIのパスにバージョンを入れる方法
- URIを見るだけでAPIのバージョンが分かって良い
- 著名サービスもこの方式
- もっとも利用されているのはURIのパスにバージョンを入れる方法
- URIのバージョンを埋め込む
Last active
February 21, 2018 05:39
-
-
Save hypermkt/c166917a50a1935ceb4b040fc386ab16 to your computer and use it in GitHub Desktop.
Web API The Good Partsの読書メモ
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment