さてさて、今回はAPIを使って何かを作ってみよう!
でも、一体何を作ろうかな。と迷い中。。。
なので、APIで一体どんなものが作れるか?
という所から調べてみました。
APIでできる事
背景
APIは、アプリケーション プログラミング インタフェース(Application Programming Interface)の略で、を活用すると、非常に難しい処理だったり、一部の企業や組織が持っている情報を活用する事ができる~。なんて説明を聞いた事があるかもしれません。
この中でも特に有名なのはWEB APIで、WEB上で通信するものがこれに当たります。
確かにAPIを活用する事で、個人でもものすごいスケールのあるシステムを開発する事も可能だと思います。
基本的な事は分かっているつもりで、活用した事もありますが、改めてAPIができる事を知りたい。
目的
APIができる事をまとめたい(少しでも良いんで)
調査
ではでは、実際に調査をしていきます。
基本調査
まずAPIというキーワードでネット検索したり、雑誌などを読んでみると、
・TwitterやインスタなどのSNSの情報を活用できるAPI
・Amazon、楽天などのショッピングモール系サイトの商品情報を活用できるAPI
・天気情報などの特定の企業、組織がまとめている有益な情報を活用できるAPI
・画像認識システムを活用できるAPI
などなど探せば色々あります。
他にも色々とあるんだろうけど。
データのやり取りは
APIとはデータのやり取りをする必要があります。
他のサイトやシステムに情報を渡して、その情報を元に吐き出された結果を受け取る。という流れが多いので
データのやり取りはこれ!という決まりがある訳ではありませんが、最近は、
・JSON
・XML
というファイルフォーマットを使うのが多いみたいですね。特にJSONが多いのかな。データ容量が軽くて扱いやすいらしい。
なので、この2ファイルくらいは、ファイルの形式や使い方などは理解しておくのが良いですね。
私も前はどちらも使っていたんですが、今は結構忘れてますな(笑)
例えば、SNSのAPIでできる事
SNSのAPIはかなり人気です。例えばTwitterの場合、ツイート機能や検索などができます。
一番多い扱われ方としては、ツイートされた情報を集めてサイトなどでまとめている。というものをよく目にします。独自の視点で、今こんなつぶやきが多い。といった情報を集めているサイトもあります。
・簡単な言語解析
・TwitterのAPI
を組み合わせて、「Twitterの情報収集による、通にウケる名古屋近辺のラーメン屋」なんてのも作れます。
Twitterのつぶやき情報から、共通語や特徴語などを抜き出す様にすると作れるぽす。
APIを使う場合の注意点
それぞれのAPIには使用上の注意点があるので、APIを使う場合にはしっかりと注意点を把握しておかなければなりません。
例えば、
・一日の使用回数が決まっている
・利用方法(商用利用)などに制限がある
・無料アカウント、有料アカウントがあり、それぞれで機能や利用方法が異なる
などなど。
制約がある場合にはしっかりと理解しておく必要があるかなと。
アカウントやらトークンやら
また、APIを使う場合には、アカウントが必要だったり、トークンと呼ばれるものが必要だったりします。
結構色々な情報が必要になる事が多いんですよね。
ただ、この辺はいくつかのAPIを触っていくうちに理解は深まると思うので、とりあえずはいくつかのAPIを触ってみるのが大事かなと思います。
もし、アカウントなどを作成した場合にはしっかりと情報はメモっておく様にしましょうね。
APIがバージョンアップされた場合
APIがバージョンアップされると、API機能が正しく動作しなくなる事があります。
とくにインターフェース部分に変更が入るとエラーになってしまいます。
これはAPIサービスを提供する側も、あまりやらないみたいですが。
なので、例えこちらの開発が完了しても、API自体の仕様の変更によってプログラムがエラーになる可能性があるので、これも要注意ですね。
分かった事
今はAPIサービスが本当にたくさんあって、APIと言えばコレ!みたいなものも簡単には挙げられないかも。
なので、こんなサービスないのかな~ってのを常に情報収集しておく事が大事です。
最近の開発というのは、自分で全部作るというよりも、APIだったり、オープンソースだったり、豊富なライブラリを活用してクオリティの高くてスケール感のあるシステムを作っていくというのが主流なのかもしれないですね。
必要とされるシステムも独自性が高いもの(かつ高品質)が求められているので、自分で様々なAPIやライブラリを活用する事ができるというのは、必須のスキルになっていくのかもしれません。
情報収集だけじゃなく「何をしたいのか?」をハッキリさせておく
情報収集が大事とは言いましたが、それよりもどんなものを作りたいか、どんなサービスが良いか。
というのをハッキリとさせておく事が大切かもしれません。
やりたい事がハッキリとしていれば、それを実現するために必要なサービスは結構あるかもしれませんので。
まずは色々なサンプルを作ったりして、レベルを高めながら、色々なAPIを使いこなせるようになるのが乙かなと思います。