最近実務でAPIに触れる機会が多いので、
RESTful APIってなんなの?ってことを学習するついでに
LINEスタンプ作ってみました。
まず成果物
※クソ適当に作ったのでサイズも全てバラバラです。
※LINE Creators Studio
※携帯のアプリで作れます(僕は携帯で寝ながら作りました。)
今回参考にさせていただいたのがこちらの記事です。
RESTful APIのHTTPステータスコード設計
※あくまで上記の記事を個人的に解釈して表したものになります。
RESTful APIって何?
まずこちらの記事を読んでみました。
RESTful APIとは何なのか
https://blog.api.rakuten.net/jp-restful-api/
0からREST APIについて調べてみた
- アドレス可能性(Addressability)
- 提供する情報がURIを通して表現できること。全ての情報はURIで表現される一意なアドレスを持っていること。
- ステートレス性(Stateless)
- HTTPをベースにしたステートレスなクライアント/サーバプロトコルであること。セッション等の状態管理はせず、やり取りされる情報はそれ自体で完結して解釈できること。
- 接続性(Connectability)
- 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができること。
- 統一インターフェース(Uniform Interface)
- 情報の操作(取得、作成、更新、削除)は全てHTTPメソッド(GET、POST、PUT、DELETE)を利用すること。
この4つの原則に従っていることが大前提ということはわかるし、
意味もなんとなくわかりますが、
「世の中で提供されてるAPIって基本RESTfulなんじゃないか?」
という疑問が拭えなかったので、アンチパターンについて調べてみました。
こんなAPIってあるの?って思ってしまいましたが
きっとあるんでしょう・・。
学習してみて
記事で調べてると、そりゃそうだろって思うことがほとんどでしたが、
自分で開発してみないとわからないことが多そうな感じだったので、
・RESTの制約
★プログラミング言語はリソース指向ではないので、URIとマッピングするコードは汚くなりがち
一回自分でAPI設計をして開発してみようと思いました。
こちらがかなりわかりやすく実装していそうだったの、こちらを参考に実装をしてみようと思います。