2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RESTfull APIって?

Posted at

そもそも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でネットで検索しつつ、見よう見まねで作成してみました。
スクリーンショット 2019-08-30 23.10.19.png

簡単な本のWEBページを作成して、
/booksとURLを追加してみる。

スクリーンショット 2019-08-30 22.45.31.png
まだデータがないので何も反映はされない。
なので、簡単にデータを作成してみました。

スクリーンショット 2019-08-30 23.57.30.png

すると、
スクリーンショット 2019-08-30 23.10.33.png
無事、jsonでデータがかえってきました!

ここまでくるにもかなり調べて時間をかけたりしたので、
(もっと効率よく調べる方法も身に付けたい・・!)
さらに基礎を固めて、もう少し複雑なものにも今後挑戦したいと思います!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?