Tech

Web APIを学ぶための学習リソースをまとめてみた

プログラミングを勉強しているのは良いものの、業務経験の無い僕のような人は、Web APIについての学習に困ると思います。

まず、以下のような疑問が湧いてきます。

  • APIってあのTwitterログインとか出来るようにするヤツじゃないの?
  • 「APIを叩く」って何?
  • てか、そもそもWeb APIって何?
  • APIの実装とか、正直分からん。

この記事では、上記のような疑問を解決し、Web APIについての理解を深めることが出来る学習リソースをまとめています。

具体的な内容は以下の通りです。

  • Web APIの概要について学ぶ
  • Web APIの活用について学ぶ
  • 企業のWeb APIを見て学ぶ
  • Web APIを実装してみる
  • Web APIの設計について学ぶ
  • Web APIとセキュリティについて学ぶ

それでは早速中身に入っていきましょう。

Web APIの概要について学ぶ

まずはWeb APIがどのようなものなのかざっくり理解したいところです。
僕がそうであったように、初学者の方にとっては「API=外部API」になっているかもしれません。
以下の資料を読むことによって、APIについてちょっとだけ詳しくなれます。

Web API The Good Parts

分厚くないので、一週間ほどあれば十分読めます。

Web APIの概要から始まり、美しい設計、セキュリティ対策などについて学べます。表紙が「蛇」なのは、執筆当時の息子さんが「有毒生物を調べるのにハマっていたから」だそうです(笑)

Webを支える技術

Web APIについて詳しく書かれているというわけでは無いですが、Webの中の1つの技術を理解するのにWebの知識が無いのではなかなか難しいですよね。正直初学者にとっては難しい書籍と感じましたが、良い本です。

Web APIとは何なのか – Qiita

https://qiita.com/NagaokaKenichi/items/df4c8455ab527aeacf02

上の『Web API: The Good Parts』の第一章あたりの内容が簡単に書かれている記事です。本を買う前にサクッと読んでおくのは良いかもしれません。

Web API入門

Web APIについて最初から学べるスライドです。

REST API concepts and examples

FacebookのGraph API, Google MapのAPIを使って、APIがどのようなものか、どんなレスポンスを返すのかなどについて説明しています。

Web APIの活用について学ぶ

最近のWebサービスではSNSログインなどが無い方が珍しい気がしますよね。APIエコノミーは拡大を辿るのみで、活用事例はそこら中にあります。

総務省 APIによるデータ収集と利活用

http://www.soumu.go.jp/ict_skill/pdf/ict_skill_1_5.pdf

情報量が多いせいで非常に見づらい。
聞く分には多分つまんないですが、読む分には学ぶことが多かったです。API活用事例をざっと知れます。

面倒な手続き不要!「Web API」の超お手軽活用術をJavaScriptコード付きで一挙大公開! – paiza開発日誌

JavaScriptが続きます。実際に手を動かすのはもちろん大事だと思いますが、読んで作りたいもののアイデアが浮かぶだけでも十分の収穫。

Google Maps JavaScript API Tutorial

JavaScriptを使ってGoogle Maps APiを触ります。実際にAPiを触ってみると、「こんな感じなのね」と掴めるのでオススメです。

企業のWeb APIを見て学ぶ

Web APIを公開している名だたる企業のドキュメントを読んでみましょう。多くが英語ですが、乗り越えるべき壁だとひしひしと感じます。

企業のWeb APIドキュメント

Graph API – Documentation – Facebook for Developers

API Endpoints • Instagram Developer Documentation

GitHub API v3 | GitHub Developer Guide

https://developer.twitter.com/en/docs

https://stripe.com/docs/api

  • Stripe APIのリファレンスは、リクエストの例が言語によって参照出来るところありがたい。
  • GitHubの開発者ガイドは、そんなに量も多くないので読みやすい。
  • 英語のドキュメントばかりだが、

Web APIを実装してみる

近い内にWebAPIを実装す未来が訪れるかもしれません。
僕もまだまだ勉強中の身ですが、役に立つと思ったものを載せます。

yosriady/api-development-tools

https://github.com/yosriady/api-development-tools

※リンク先はGitHubのリポジトリです

HTTPとJSONによってRESTfulなAPIを開発するために役立つツールがまとめられているリストです。
各言語での便利なライブラリなどが紹介されているため、助かります。

Ruby on Rails REST API: The Complete Guide

Ruby on Rails REST API: The Complete Guide

Udemyの講座ですね。僕は重度のUdemyファンでして、APIの講座を探していたところ、Railsだとこれが一番良いのではと思いました。RSpecもバリバリ書いていて、あまり経験のない僕は結構キツイですが、勉強になりますね。

APIの実装に関しても情報が豊富な上に、講師のSebastianは優しいので質問すれば答えてくれます。

※Udemyのおすすめ講座はこちらにまとめています。
>> 【Udemy厳選】Webプログラミングのおすすめ講座6選

RESTful API with node.js

node.jsでAPI実装を学んでいきます。僕はJSについての知識が乏しいので動画を楽しむことは出来ませんが、JSが使える方にとって有用だと思います。

Web APIの設計について学ぶ

アプリケーションの設計を考えるのと同じように、WebAPIについても設計は重要。なぜ重要なのかというのが、以下の資料を読むと分かります。

5分で絶対に分かるAPI設計の考え方とポイント

http://www.atmarkit.co.jp/ait/articles/1511/19/news022.html

こちらの記事を読むには会員登録が必要で少し面倒。しかし、読んでよかった内容だったので、ぜひ確認してほしいですね。

API設計指針を考えた

https://blog.mmmcorp.co.jp/blog/2015/07/01/web_api_guideline/index.html

APIの設計指針について、簡潔にまとめられています。

綺麗なAPI速習会 – Qiita

https://qiita.com/shimastripe/items/e9b0e1f8f8d77b89373f

正直僕は完全に理解出来ていませんが、中級以上の方の参考のために載せておきます。

Web API: The Good Parts 落穂ひろい

そして著者の水野さんによる落穂ひろい資料。
一度だけ水野さんにお会いしたことがあるのですが、その時「この本も古くなってきたから新しくしたい」とおっしゃっていたのを覚えていまして、期待しています!

PS: 設計においても 「Web API: The Good Parts」は重要な情報源だと思います。(というかAPIの設計がメイン)

RESTful API設計入門

Web APIとセキュリティについて学ぶ

セキュリティについて何も考えられていないAPIを公開することは、かなり危険ですよね。セキュリティは概念が理解しづらいところが多いと感じますが、以下の資料は助けになります。

認証を含む API 開発で検討すべきこと

https://www.bokukoko.info/entry/2015/12/20/認証を含む_API_開発で検討すべきこと

認証が必要なAPIでの検討事項が書かれています。セキュリティ対策をする上で最も気をつけるべきといっても過言ではないのが認証だと考えます。

GitHub – shieldfy/API-Security-Checklist: 

https://github.com/shieldfy/API-Security-Checklist

API開発におけるセキュリティで気をつけるべき点が、チェックリストでまとめられています。スターの数も多いように参考にしたいですね。

体系的に学ぶ安全Webアプリケーションの作り方

2018年に第2版が発売されました。APIについての情報も追加され、読んでおきたい1冊。

HTTPの基礎からクッキー, XSS, CSRF, SQLインジェクションなどの攻撃に対する対策などが実践を通して学べます。

APIセキュリティ入門

https://japan.zdnet.com/article/35125490/

第六回に分けて、APIのセキュリティについて学ぶことが出来ます。
記事が公開されたのも2018年の9月なので、新しい情報です。

終わりに

最近のWeb企業の説明会や技術ブログを読むと、よく「マイクロサービス」という言葉を見かけます。マイクロサービスがどのようなものなのか把握するためには、大前提としてAPIの知識が欠かせないと思います。

Webのエンジニアであれば、APIは必須科目と感じたので、ちゃんと実装出来るようになりたいですね。

また、Facebookが開発を進めてGitHubも採用した『Graph QL』というAPIへの問い合わせ言語も、これから学ぶべきものとなったはず。

また追って記事が書けたらと思います。