WEB APIという単語。身近な方々が話をしてるのも聞きますし、フリーランス業界でも良くみかけます。しかしイマイチ実態がわかってない。

  • 色々調べてみよう
分からなかったらすぐ聞く。調べてわかることは、どんどん調べる。
ということ以下の記事を読んでみた。


  • 分かったこと
ざっくりいうとHTTPプロトコルを使って、ネットワーク越しにアプリとアプリを通信させるときのインタフェース仕様と理解しました。で、以下の3つが基礎技術みたい。

SOAP
REST

…って、WEB-APIって何のことはない。XMLでテキスト記述したオブジェクトをHTTPで送受信するやつのことか。昔、ASP.netの実験アプリを作ったときにSOAP使ったことがあるから何となく覚えてる。

でも、XML-RPCとSOAPは知ってたがRESTは知らない。きっとRESTが肝になるに違いない。

  • RESTって何よ
REST入門 基礎知識を読んでみた。
RESTREpresentational State Transfer)はWebサービスの設計モデルです。RESTなWebサービスは、そのサービスのURIにHTTPメソッドでアクセスすることでデータの送受信を行います。
まだよく分からん。

Qiitaに実装されてるREST APIの確認例が挙げられていた。https://qiita.com/api/v2/users/TakahiRoyteをクリックせよと書いてあったのでFirefoxでクリックしてみると、こんなの出た。
1

RESTはJSON(JavaScript Object Notation)フォーマットを使うのが一般的らしい。RESTはXMLも使えるがあまり利用されてないとのこと。

この例ではQiitaの記事を書いたユーザの情報をRESTでGETしているが、RESTでPOST、PUT/PATCH、DELETEも実行できるようだ。
  • RESTful
この要件を満たすとRESTfulと呼ばれるらしい。なんか普通にシンプルな設計思想だ。これなら私でも数時間あれば作れそう。
①アドレス指定可能なURIで公開されていること。
1つのリソースに対してアドレス指定可能なURIが用意されていることが推奨される。

②インターフェース(HTTPメソッドの利用)の統一がされていること。
URIで表されたリソースに対してHTTPメソッドでアクセスする。HTTPメソッドとはPOST(登録)、GET(取得)、PUT(更新)、DELETE(削除)のこと。HTTPメソッドはDB界隈で良く使われるCRUD操作(CREATE、READ、UPDATE、DELETE)と紐づけられる。

③ステートレスであること。
サーバがクライアントのセッション情報を保持しないこと。セッション管理がシンプルになる。スケーラブルなシステムにできる(拡張性が高いと理解)。

④処理結果がHTTPステータスコードで通知されること。
200(OK)リクエストが正常に処理された
201(Created)リクエストが正常に処理され、新規リソースが作成された
204(No Content)リクエストが正常に処理されたが、返す新規情報はない
400(Bad Request)サーバーが理解できない無効な要求である
401(Unauthorized)要求されたリソースには認証が必要である
403(Forbidden)要求されたリクエストは拒否された
404(Not Found)要求されたリソースはサーバーに存在しない
500(Internal Server Error)サーバーでエラーが発生した
  • 独りごと
なんか、身の回りでWEB-APIというワードが飛び交ってるのは気づいていましたが、食わず嫌いで見て見ないふりをしてました。でも、ちょこっと調べたら大したことなかった。Amazon、Twitter、Facebookなど有名なWEBサービスたちはWEB-APIで動いてるようなので、何か実験してみよう。そういえばフリーランスのWEB開発のうち、小規模なやつはWEB-APIを使って情報収集するみたいのが多かった印象。少しハードルが下がった気がする。

海外・国内の便利なAPI一覧 - API LIST 100+ - Social Media Surfに公開されているWEB-APIが載ってます。何か作るときに参考にしよう。

続く
IMG_20190614_130458

にほんブログ村 IT技術ブログ IT技術メモへ
FC2 ブログランキング



スポンサードリンク