どうも、こんにちは。
この夏はAmazonの新型APIであるSP-APIと格闘していました。
AmazonではこれまでMWSというAPIを提供していたのですが、この2022年の夏からはSP-APIという新しいAPIを使うことがアナウンスされました。
このアナウンスはもう1年以上前から予告されていたのですが、あまりにも難しくてすぐに対応できないという意見が多かったため1年遅らせたという経緯があります。
しかし、この2022年の9月が最終期限。
この1年の猶予があっても僕のような独学プログラマーにとっては、分からないことが多く、期限が差し迫ってくるにつれストレスも多くなってきました。
それでもやっとのことで新しいAPIに載せる替えることができて今はホッとしています。
このAPIと格闘してみて、自分は一体何を得ることができたのか?
その感想を今回は書いてみたいと思います。
軽く自己紹介
いきなり感想を述べられても興味を持つ人なんかいないと思いますので軽く自己紹介をしておきます。
僕は、全くの独学でPHPを勉強してせどりで使うツールを開発して販売までしています。
プログラミングの会社で働いたこともなく、プログラミングを教えてくれるような仲間も先輩も師匠もいません。
僕の師匠といえば数冊のPHPの入門書とグーグルくらいです。
そんな僕が少しずつ少しずつプログラミングを勉強してAmazonのAPIを叩けるようになりました。
自分の自己紹介はこんな感じです。
それでは、Amazonの新しいAPIと格闘する上で自分の得たものをまとめていきたいと思います。
APIの知識が深まった
Amazonの新しいAPIでは、トークン型のAPIが採用されています。また、これに加えてAWSのIAMロールも入ってきて認証がとても複雑でした。
AWSについても使ったことがなかったのでまずはここから触っていきます。ただ調べていくうちにIAMロールだけしか使わないのでEC2やS3といった主要なサービスの理解までは至りませんでした。しかし、勉強するうちにこれらのサービスについても知っておくべきだなと感じました。
以前のMWSでは自分が使い始めたのが遅かったこともあってコードがブログなどで色々と紹介されていました。なので、それを理解してコピペすれば何とか動かすことができました。中身についてはあまりよく分かっていないにもかかわらず。
しかし、今回のSP-APIでは皆が初めて触るものだったので充実した記事があまりなく、どうしたらいいのかよくわかないところから始まります。
この時点で誰にも教えてもらえない環境であることを呪いました笑
ただ、2022年に入ると少しずつ解説してくれている記事が出だしたのでそれを元にコードを書いていきました。
しかし、それでも基本の「き」くらいのレベルだったのでツールを動かすのに十分なレベルではありませんでした。ほとんどが自己認可の認証までの説明で終わり実際に使うOAuth code grantの認証の話はあまりありませんでした。
また、そもそもAPIには色々な種類があるのですが、自分が使いたいAPIの解説が少なすぎました。
そのため、もう他の人の記事を待っていても仕方がないので今年の春頃に自分で書くことを決心します。
そこからは、Amazonの公式ページを読み込む日々でした。
Amazonの公式ページは英語で書かれていたので、結構初めはストレスでしたが意外と読めたのでこれでかなり理解が深まりました。
結局基本的なプログラミングや通信の知識があれば、後は公式を読めば何とかなるんだなというのも今回分かりました。全てそこに書いてあるので他人が書いた記事などよりもまずは公式なんだなと理解しました。これは結構いい経験になりました。
そして、公式のページを読めばどうやってAPIにアクセスするURIを作ればいいのかも分かるようになってからはこのAPIを叩くのが楽しくなってきました。
正しいコードを書けば応答がある。間違っていれば応答がない。ただそれだけのシンプルなやりとりです。そこに気持ちとか感情とかファジーなものが全然ないのが逆に独学プログラマーにとっては良かったのかもしれません。ロジカルに組み立てればいいだけですし、そのロジックは誰にとっても共通のものです。つまり私のような独学プログラマーでも正しいコードが書ければOKな訳です。なんて素晴らしい世界!
プログラミングの英語がかなり読めることが分かった
英語のAmazonの公式を読む前は英語のサイトでしかもプログラミングという技術的な内容だからきっと難しいに違いない!と決めつけていました。
なので、食わず嫌いを発動していたのですが、早く読めば良かったです。
言語は違えどプログラミングという共通の話題について話してるので結構分かるんです。
何なら大学受験で読まされた文章の方が難解で分かりにくかったです。このAmazonのサイトは平易な文法で書かれていて単語さえ分かれば英語を勉強してきた人ならすぐに読みこせるんじゃないかと思います。
この経験の収穫は非常に大きかったです。
日本はやっぱりアメリカに比べると情報が少し遅れています。英語の情報はたくさんあるのですが、日本語は本当に少ない。きっとそもそものエンジニアの数が少ないからブログまで書こうというエンジニアの数が相対的に少ないんじゃないかなと思います。
昨今のWebサイト制作の流行りでHTMLやCSSについての記事は多い印象があるのですが、トークン型のAPIの叩き方を基礎から詳しく教えてくれるようなものはあまり充実していません。この辺りが日本が世界からビハインドしている状況を如実に表していて悲しいです。それなら自分が書いてみようかなんて考えています。なのでプログラミング特化の別ブログを作成しました。
プログラミングが好きだということを再認識できた
自分は独学でやっているのでどこか本職でやっているプログラマーやエンジニアに引け目を感じていました。
また、新しいAPIが分からなすぎた時はプログラミングのことが嫌いになりそうでした。
しかし、自分なりに取り組んで実際に動くようになるとやっぱりめちゃくちゃ楽しいなと実感できました。
それで、API部分の入れ替えだけでなく他の部分もどんどん改良を進めていきました。
以前に比べてかなりスムーズに動くようになり実際の業務もかなり改善されました。
また、ユーザーの方からも以前よりも使いやすくなったという言葉をいただくこともあってめちゃ嬉しかったです。
この作ったものが実際に使ってもらって役に立つというのが本当プログラミング冥利につきます。
こうなると自分が独学で引け目を感じるとかそういうことはどうでも良くなってきました。
ユーザーが使いやすく使えるように日々改良し、日々勉強を続けていくことが大事なんだなと思えるようになったんです。
この収穫が今回のAPIに取り組んでみて得ることのできた一番の収穫ではないでしょうか。
終わりに
今回Amazonの新しいAPIに取り組んでみて得たものというお話を書きました。
このトピックに一体どれだけの人がこの記事に興味を持つでしょうか?
そもそもAmazonのAPIを叩く日本人がそれほど多くはないのでほとんど読まれないと思いながら書いています。
しかし、もし一人でも共感していただけるような人がいればいいなと思って書いてみました。
独学プログラミングは途中が結構地獄かもしれません。しかし、諦めずに食らいついていると(途中何度もやめていますが笑)、結果がついてくるような気がします。
その諦めずに食らいつく過程で自分は英語がとても役に立ちました。大学生まで勉強していた語学がこんな形で自分の身を助けるとは思ってもいなかったです。
過去勉強していたことが無駄ではなかったんだなというのも何だか今回感慨深かったですね。
常に勉強をし続けることはやっぱり非常に大事なんです。
そんな感じです。
それでは!
コメント