APIを知ったかぶり→話せるに変えるための5分
世の中3文字のアルファベット多いですよね。
どうもKIMです。
今日はサーバーサイドエンジニアの面談で90%出てくるAPIについて学んでいきます!
全然わからない人からさらに理解したい人向けに記載しているので、太文字の部分は中級編と思ってみてもらえれば幸いです。では目次。
■APIってなに?
システムの流れをざっくり
画面で情報を入力(フロントエンド)
必要情報をDBから呼び出す(バックエンド/工程多いけど割愛)
検索結果を画面で表示(フロントエンド)
【2.必要情報をDBから呼び出す】
この部分を自社のDBじゃなくて他社(または自分クラウド管理している)のDBから情報を引っ張る事ができるのがAPIです。
わかりやすくAPIが使われてるサービスはこちら
FacebookのアカウントでログインできるTin●er(●ィンダー)
ホテルを選ぶ時1番安い予約サイトを探してくれるサービス
Facebookさんや予約サイトさんの情報を呼び出す、それがAPIです。
って言われるとなんとなぁ〜く入りやすいかと!
フロントエンド/サーバーサイドエンジニア分け隔てなく触れる機会があるため、面談の時に聞かれる頻度は高めかもしれませんね!
■APIの種類
まずこれで覚えちゃってください!Google先生はもっと細かく教えてくれますが、
業界で「API」と言われたら90%RestAPIという通信方法のことです。
ただ、近年別のAPIのやり方が出てきており、そこは話のネタにしやすいので、どんっ。
■どんなイメージを持てば良い?
特徴をRestAPIと比較してみましょう。
調べてみると通信方法の違いみたいのがいっぱい出てきますが、
僕らエージェントが理解しなければならないのがこちら
【GraphQL】
・自由度が高い≒難易度が高いAPIの接続方法
・マイクロサービス(1つのサービスで機能ごとに別々の技術選定したりする)でよく使われる
・使っている人少ない
【gRPC】
・超高速
・いろんな言語で使えるが、Golangと使うイメージ強い
・Lambda+API Gatewayを使用するケース多い(サーバーレス環境と言われるやつ)
・使っている人少ない
・Go言語とよく使われる
【OPEN API】
・元々Swaggerという名前
・自由度が制限される≒わかりやすい=難易度低め
・gRPCに世代交代が進む
【Websocket(WebRTC)】
・動画配信サービスやオンラインMTGで必要なWebRTC(リアルタイム通信)
・リアルタイムで更新されるTwitterなどで使われている
・SkyWayってRTCのサービスとかを使っちゃうケースも多い
・使っている人少ない
■どんな話をして案件のハードルを下げる?
RestAPI以外が出てきた時に、営業としてどんな反応をした方が良いのか分かるとめちゃくちゃいいですよね!
現実的に考えて、せっかく該当する言語やフレームワークの人みっけたけど、API周りだけで選考落ちとか洒落にならないので、提案前(提案時)にこんな文章つけてみる、追っかけ電話で質問してみたら少なからず購買の目線を超えられると思います!
「●●だと人が限られてしまうってのもあり、、RestAPIでの設計経験あれば一旦良いですか?」
「既存で使用しているGraphQLを改修であればクエリを覚えたらRestの方でもキャッチアップしてもらえますかね?」
「gRPCの経験ないんですが、Golang経験者なら大体API周り強いはずなので見てもらっても良いですか?」
「WebRTCの記載なくても動画配信やリアルタイムの通信ありそうな方であれば一度ご提案させてもらっても良いですか?」
スキルシートから読み解く部分にも付随しますが、こんなところからも攻めポイントあるなって思うので補足としてみてもらえれば!
「スキルシートにAPI設計とか書いてないんですが、Lambda使ってるみたいなのでAPI部分も携わってるかと思います!」
「基本サーバーサイド強めですが、GraphQLやReact.jsの記載がある案件も経験しているのでAPI周りは分け隔てなく対応できそうです!」
■最後に
ぶっちゃけAPIというとまだまだRestAPIのシェアが多いのですが、曲者APIをニーズとして言われた時は重要視されている場合が多いイメージです。
言語やフレームワーク、AWSなどのクラウドサービス以外のチェックポイントとしてAPIのことを理解しておくと、
フリーランス登録、提案、面談の司会進行、クライアント関係構築
が円滑に進められるかもしれませんので、覚えておいて損はないと思います!
この記事が気に入ったらサポートをしてみませんか?