Web Developer Roadmap 2021に乗っ取って勉強する~API編~
前回の記事はこちら
先週書く予定でしたがワクチン接種などでバタついていました(n回目の言い訳).
気がついたら10月です.年末がチラついてくるあたり,本当に社会人になってから時の流れが早いような気がします.
今回はWeb Developer Roadmap 2021の次のパート,
「 APIについて学ぶ」の部分を勉強しました.
今回読んだ本
今回読んだ本はこちら.
「Webを支える技術」です.この本もWebエンジニアになるのであれば読むべき本としてかなり有名な部類に位置するのではないでしょうか.厚さは技術書としては普通くらいでした.サイズ感的は思ったより小さくて驚きました笑.移動中でも広げられるくらいのサイズです.
読んだ感想
ロードマップに,「RESTに関しては必ずRoyさんの論文を読むこと」と書いてありますが,RoyさんのRESTに関する論文はもちろん英語なので流石にギブアップしました😂.曲がりなりにも大学院時代は国際会議の論文を何本も読んできているので英語の論文への耐性はゼロではないですが,ここ最近勉強のスピードが激減しているので,手っ取り早く解説している本を探した結果,この本にありつきました(Royさん,ロードマップ作成者の有志の皆さんごめんなさい).
この本は,サブタイトルにもあるとおり,HTTP,URI,HTML,RESTについて主に書かれています.Webとは?HTTPとは?HTMLとは?といったそれぞれの初歩中の初歩の知識はほぼ書かれていなかったと思います.この辺りの知識については,ロードマップのかなり序盤の方に相当しっかり勉強してきたこともあり,全く問題ありませんでした.逆に言えば,この一冊でWebの成り立ちや仕組みを知ろうとすると,とても難しいかなと思います.
RESTについては,「GETやPOSTを使ってJSONをやり取りするやつ」程度の適当な知識しかなかったのですが,この本を読んでRESTのアーキテクチャスタイルについて詳しく知ることができました.SOAPに関しても,名前を見たことがある,程度でしたがこの本で歴史的経緯が紹介されていて面白かったです.というか,業務で扱っているコード内でXMLをやりとりしたり解析したりしている部分があったので,まさにSOAPなのではないかと今更思いました笑.
この本が2010年に出版されているようで,まだ今ほどスマホやWebサービスで溢れかえっていなかったこともあり,RSSを中心にXMLを使った技術の説明がかなり多かったかなと思います.XMLについては,AndroidのViewを組み立てる時くらいにしか使ったことがなかったのでほとんど馴染みがなかったのですが,自分の想像以上に色々なことに使われている技術であることを実感しました.自分が配属していた研究室の専門分野の一つにセマンティックウェブがあったので,奇跡的に多少理解の手助けになったと思います😁
ロードマップの残りの部分の補足勉強
「Webを支える技術」では,ロードマップ上の右側
これらをカバーしました.実際には本を読んだだけでは十分ではなかったので,それぞれググってもう少しだけ深掘りしました.RESTに関しては,Royさんの論文のRESTアーキテクチャスタイルの部分だけ少しだけ読んでみましたが,事前に勉強した甲斐もあり,理解がしやすかったと思います.JSON APIsについては,自分で調べてみたものの,具体的に何を指しているのかあまりよくわからなかったです.
ロードマップの左側,
については,本を買い始めたらキリがない量なので,それぞれ自力で調べて解決しました.
この中でも特に認証の部分は普段の業務でも使っている技術ですが,深くは知らなかったので,今回はいい機会だったと思います.業務で認証サーバーと認可サーバーを使っているアプリを扱っていますが,正直あまり意味もわからずに改修していたのでとても役に立ちました(認証と認可の違いもわからなかったなんて言えない).
JWTについて調べていると何件か「JWTをセッション管理の用途で使ってはならない」というページに遭遇するのですが,セッションもJWTも今回の勉強をするまでほとんど何も知らなかったので,当初は読んでもさっぱりわからなかったのですが,それぞれの用語を調べた上で改めて読んでみると,アンチパターンであることの理由がよくわかって面白かったです.
OpenIDやSAMLに関しても,最近サービスでよく見るアカウント連携に関係するのであろうと思うと,仕組みがわかって面白かったです.
最後に
今回は,普段当たり前のように使っていてあまり気にしたことがなかったAPI周りについて勉強してみました.
ロードマップの全体を眺めてみたところ,だいたい半分くらいの地点でした.概要レベルで学習を済ませてしまっている箇所もいくつかあるのですが,深掘りしすぎて先に全く進まなかったり,挫折してしまったりするのだけは避けたかったので,悪くはない方針だと思っています.とはいえ,今年中にロードマップを完走するのはとてもじゃないですが無理なので,いい加減にならずにしっかりと勉強していきたいと思います.