API概要
我々が普段利用するWebアプリケーション
・・・別のアプリケーションなどにリクエストを送り、裏側の仕組みはわからないものの欲しい情報が得られるという仕組み<<API
・API
主にアプリケーション同士がデータをやりとりする場合に使用する一定のルール、仕組みのこと。Application Programming Interfaceの略。
①「このようにリクエストが来たらこのようにデータを返す」という仕様全体を表す意味。
②「呼び出したら実行されるメソッド」そのものを表す意味。
例えば、link_toやrenderなど、Railsが独自に定義し用意してくれているメソッド、またはRubyの各データが使えるメソッド(Stringであればto_i、配列であればeachなど)は「RailsのAPI」。
・WebAPI
HTTP/HTTPS通信を使用して利用するAPI。
例えば、Googleが提供しているGoogle Maps PlatformというWebAPI。
Google Maps Platformは、位置情報や経路などの情報をやりとりすることができ、これを利用すればMap部分をゼロから開発する必要がなくなる。
・オープンAPI(公開API)
外部に公開されているAPI。
Google Maps PlatformはオープンAPI。利用する側からは、公開APIを利用するという文脈で「外部APIを利用する」と言う。
・内部API
自社や個人が開発したアプリケーションの内部で取り扱うAPI。
外部に公開しておらず、自身のためだけに使っているAPI。
______________________
・・・APIはレスポンスで描画するHTMLを返却するのではなく、常にデータを返却することだけが責務。
・rails newのapiオプション
Ruby on Railsでは、API作成に特化した状態、すなわち「常にデータを返却する仕様」に特化した状態でアプリケーションを作成できる。
・・・html.erbなどのビューファイルが自動で作成されないようになる。
rails new 〇〇 --api # rails newコマンドに--apiというオプションをつける。
APIとして作っていくにあたって最適な状態でアプリケーションが作成できる。
______________________
ビューファイルがないとユーザーが閲覧しやすい画面を届けることはできない。
・・・APIとは別に、フロントエンド専用のアプリケーションを作成する必要がある。「サーバーサイドとフロントエンドで分離する」
______________________
サーバーサイドとフロントエンドでは扱う言語が異なる。
サーバーサイド:データを渡すところまでを行う。計算処理などのパフォーマンス改善の分野により精通している必要がある。
フロントエンド:HTMLをはじめとしたマークアップスキルと、JavaScriptなどのイベント駆動を扱うスキルを知っておく必要がある。
分離することで、大規模なプロジェクトでも効率的に作業ができる。
______________________
・ネイティブアプリケーション
スマートフォンやタブレットを使用して、App StoreやGoogle Play Storeでダウンロードできるアプリのこと。
OS 言語
iOS Objective-C, Swift
android Java, Kotlin
・クロスプラットフォーム(マルチプラットフォーム)
iOSやandroidのどちらにも互換性のある開発フレームワークのこと。
そのフレームワークに沿って開発を行えば、iOSやandroidのどちらでも動作するアプリケーションを作成できる。
・・・このフレームワークは近年開発が進んでおり、「Flutter」や「React Native」などが該当する。
これらネイティブアプリケーションにも、APIの利用は最適。
Webアプリケーションと、iOSのネイティブアプリケーションと、androidのネイティブアプリケーションの合計3つを作成するとき。
・・・サーバーサイドのAPIアプリケーションは、1つ作成。
・・・それぞれのアプリケーションに適切なデータを返却し、それに対する処理をフロントエンドで行って実装。
・・・クロスプラットフォームを使用すれば、iOSとandroidなどのネイティブアプリのフロントエンドも、1つのアプリケーションからそれぞれ作成できる。
2020/11/21
この記事が気に入ったらサポートをしてみませんか?