そもそもRESTってなに?
参照 http://e-words.jp/w/REST.html
RESTは**「リソース」**を扱うための考え方のこと。
リソースの意味も忘れないようにメモ。
**「リソース」**→例えばアップロードした画像や、ブログの記事やWebページ全体のコンテンツであったりといった、ひとかたまりの要素・情報のことを指します。
RESTの考え方では、リソースはそれぞれ固有のURIを持っていて、
そのURIにアクセスすることで、それぞれのリソースを操作することができます。
つまり、
・GET:リソースの取得
・POST:リソースの新規作成
・DELETE:リソースの削除
・PUT:リソースの更新
などなどで何を行うか伝えるということ。
ちなみに、HTTPメソッドで表現しにくい操作には
例えばメール送信などその場合はカスタムメソッドを使用するらしい。
おそらく1:sendMailとかそんな感じになるかと思います。
じゃあ次にAPIってそもそも何?
参照 https://data.wingarc.com/what-is-api-16084
APIとはApplication Programming Interfaceを省略して呼んでいる。
上記URLにわかりやすく記載してくれているが、自分用にも少しメモ。
つまりAPIとは、
ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、
第三者が開発したソフトウェアと機能を共有できるようにしてくれるもののこと。
RESTじゃないAPIってどんなもの?
RESTなAPIは、リソースに対応づいてURLが決まるから、
処理にはURLは対応づかないはずなのに、ついてしまっているもの。
例えば、ユーザー情報を作成したくて、
http://api.dayo.cooom/CreateUser/1/UserMain
とかこんな感じになるのかなと・・・
これだとSQLインジェクションのリスクも高くなってしまう。
(SQLインジェクション:データベースと連動したWebアプリケーションなどに対する攻撃手法の一つ)
RESTful APIのメリットって?
・アドレス欄に入力すればそのリソースを参照できる。
(例)chat/と入力すればchat画面にいける。
・URLの規則のおかげで開発者が楽になる。
・データフォーマットを扱うことで、他システムとの連携が容易になる。などなど。
実際自分でも簡単なRESTfulAPIを作成してみた
golangでネットで検索しつつ、見よう見まねで作成してみました。
簡単な本のWEBページを作成して、
/booksとURLを追加してみる。
まだデータがないので何も反映はされない。
なので、簡単にデータを作成してみました。
ここまでくるにもかなり調べて時間をかけたりしたので、
(もっと効率よく調べる方法も身に付けたい・・!)
さらに基礎を固めて、もう少し複雑なものにも今後挑戦したいと思います!