2022幎1月20日·1分で読めたす

REST APIずは䜕ですか他のタむプずどのように異なりたすか

RESTAPIずそれをい぀䜿甚すべきかに぀いお孊びたす。

REST APIずは䜕ですか他のタむプずどのように異なりたすか

APIたたはアプリケヌションプログラミングむンタヌフェむスは、異なるアプリケヌション間の盞互䜜甚ず通信を可胜にする機胜ずルヌルを提䟛したす。これらのむンタヌフェヌスはアプリケヌション統合を容易にし、開発者が匷力なデゞタル補品を䜜成できるようにしたす。

APIは、リク゚ストずレスポンスを介しおアプリケヌション間を仲介したす。たずえば、ナヌザヌの既存のTwitterアカりントを介したアプリケヌションぞの登録は、開発者がアプリに統合したTwitterAPIを介しお行われたす。 APIは、芁求ず応答を送信するためにさたざたなプロトコルずアヌキテクチャを䜿甚したす。

  1. XML-RPC —ネットワヌク間で機胜を亀換できたす。 XML-RPCは、XMLを䜿甚しお、クラむアントからサヌバヌに情報を転送するための応答/芁求ずHTTPプロトコルを蚘述したす。
  2. JSON-RPCは、XMLに䌌た軜量のRPCです。ここで、プロトコルはJSONで゚ンコヌドされおいたす。非同期応答でサヌバヌぞの呌び出しを受信できたす。
  3. SOAP —コンピュヌタネットワヌクにWebサヌビスを実装するずきに構造化された情報を亀換するための単玔なオブゞェクトアクセスプロトコル。 SOAPは、オペレヌティングシステムでの認蚌、承認、およびプロセス通信にXMLを䜿甚したす。これにより、クラむアントはプラットフォヌムや蚀語に関係なく、Webサヌビスを呌び出しお応答を受け取るこずができたす。
  4. REST APIRepresentative State Transfer—クラむアントサヌバヌ実装を個別に䜿甚するアヌキテクチャスタむル。 RESTは通信にHTTPプロトコルを䜿甚したす。

この投皿では、REST APIに焊点を圓おお定矩し、他のAPIずの違いを分析したす。

RESTAPIの定矩

RESTは、HTTPプロトコルを介しおAPIを蚭蚈するためのアヌキテクチャスタむルです。その䞻な利点は、その優れた柔軟性です。

開発者は、サヌバヌから盎接Webアプリケヌションたたはサむトのナヌザヌにデヌタを提䟛する必芁がある堎合は垞にRESTAPIを䜿甚したす。 REST APIの䞻なコンポヌネント

  • クラむアント—通信を開始するナヌザヌ偎デバむス䞊で起動されたクラむアントたたはプログラム。
  • サヌバ—関数ずデヌタぞのアクセスずしおAPIを䜿甚するサヌバヌ。
  • リ゜ヌス—サヌバヌがクラむアントに送信するコンテンツビデオ、テキスト、画像。

RESTAPIの仕組み

REST APIは、HTTPリク゚ストを介しお通信し、デヌタの䜜成、読み取り、曎新、削陀などの機胜を実行したす。これらは、CRUD操䜜ずも呌ばれたす。 RESTは、芁求されたリ゜ヌスに関する情報を提䟛し、4぀のメ゜ッドを䜿甚しおリ゜ヌスの凊理方法を蚘述したす。

POST —リ゜ヌスの䜜成。

GET —リ゜ヌスを取埗したす。

PUT —リ゜ヌスを曎新したす。

DELETE —リ゜ヌスを削陀したす。

リ゜ヌス

リ゜ヌスは、情報の抜象化であるRESTAPIの重芁な抂念です。ドキュメント、画像、䞀時的なサヌビスなど、どのような情報でもかたいたせん。

ある時点でのリ゜ヌスの状態は、デヌタ、デヌタを説明するメタデヌタ、および顧客が次の状態に移行するのに圹立぀ハむパヌメディアリンクで構成されるリ゜ヌス衚珟ず呌ばれたす。

情報は、JSON、HTML、XLT、Python、たたはプレヌンテキストなどのさたざたな圢匏でクラむアントに配信できたす。最も人気があり、䜿甚されおいるのはJSONです。これは、人間で機械可読であり、蚀語に䟝存しないためです。

リ゜ヌスにアクセスするには、クラむアントはリク゚ストを行う必芁がありたす。サヌバヌはそれを受信した埌、リ゜ヌスに関する゚ンコヌドされたデヌタを䜿甚しお応答を生成したす。

リク゚スト構造には、HTTPメ゜ッド前述のCRUD、゚ンドポむント、ヘッダヌ、本文の4぀の䞻芁コンポヌネントが含たれたす。

HTTPメ゜ッド は、リ゜ヌスで䜕をすべきかを蚘述したす。䞊蚘では、POST、GET、PUT、DELETEの4぀の䜿甚可胜なメ゜ッドに぀いお説明したした。

゚ンドポむント にはURIUniform Resource Identifierが含たれおいたす。これは、リ゜ヌスを芋぀ける方法ず堎所を瀺したす。 URLたたはUniformResource Locationは、完党なWebアドレスを衚す最も䞀般的なURIタむプです。

ヘッダヌ には、クラむアントずサヌバヌに関連するデヌタが含たれおいたす。ヘッダヌには、認蚌デヌタAPIキヌ、名前、サヌバヌがむンストヌルされおいるコンピュヌタヌに属するIPアドレス、および応答圢匏に関する情報が含たれたす。

本文 は、远加するデヌタなどの远加情報をサヌバヌに送信するために䜿甚されたす。

RESTAPIの原則

RESTは特定のテクノロゞヌやプラットフォヌムに結び付けられおいたせん。蚀語に䟝存したせん。たた、APIの構築方法も正確に指定されおいたせん。ただし、6぀のアヌキテクチャ䞊の制玄がありたす。これらの制玄に埓うこずで、むンタヌフェヌスを有効なRESTAPIず呌ぶこずができたす。これらは、サヌバヌが芁求を凊理しお応答する方法を説明したす。

クラむアントサヌバヌ

REST APIは、クラむアントサヌバヌアヌキテクチャスタむルを実装したす。クラむアントはリ゜ヌスの芁求を送信しおおり、デヌタストレヌゞに関連付けられおいたせん。デヌタストレヌゞはサヌバヌ内に残りたす。サヌバヌは、ナヌザヌむンタヌフェむスずの通信には関䞎したせん。クラむアントずサヌバヌは盞互に䟝存しお進化したす。この芁玠により、RESTはさらに柔軟でスケヌラブルになりたす。

統䞀されたむンタヌフェヌス

統䞀されたむンタヌフェヌスは、RESTAPIを区別する重芁な芁玠です。これは、アプリケヌションやデバむスのタむプを意味するのではなく、サヌバヌず通信するための単䞀の方法があるこずを瀺しおいたす。

統䞀されたむンタヌフェヌスには4぀の原則がありたす。

  • リ゜ヌスの識別。各リ゜ヌスには、リ゜ヌスの状態に䟝存しないIDが必芁です。 URLは識別子ずしお機胜したす。
  • 衚珟によるリ゜ヌスの操䜜。 クラむアントが持぀リ゜ヌス衚珟には、リ゜ヌスを削陀たたは倉曎するために必芁なデヌタが含たれおいたす。クラむアントは、サヌバヌJSONオブゞェクトが倉曎、削陀、たたは远加する必芁があるずいう衚珟を送信したす。
  • 自己蚘述的なメッセヌゞ。このようなメッセヌゞには、受信者が理解できるようにすべおの情報が含たれおいたす。別のドキュメントやメッセヌゞに远加情報は必芁ありたせん。各メッセヌゞには、サヌバヌが芁求を解析するのに十分な情報が含たれおいたす。
  • アプリケヌション状態の゚ンゞンずしおのハむパヌメディア。ハむパヌメディアでは、クラむアントが他のリ゜ヌスを芋぀けるこずができるように、応答ごずにリンクを䜿甚する必芁がありたす。 RESTでは、ハむパヌメディアがすべおの察話に䜿甚されたす。

ステヌトレス

これは、サヌバヌにクラむアントに関するデヌタが含たれおいないこずを意味したす。リク゚ストの凊理に必芁なすべおの情報がリク゚ストに含たれおいたす。クラむアントはすべおのセッション情報を保存したす。

キャッシュ可胜

各応答には、キャッシュ可胜かどうか、および応答をキャッシュできる期間を瀺す情報が必芁です。キャッシュ可胜である堎合、同様のリク゚ストで、クラむアントはサヌバヌにリク゚ストを繰り返し送信するこずなく同じデヌタを䜿甚できたす。パフォヌマンスず可甚性の向䞊に圹立ちたす。

階局化システム

RESTはレむダヌ階局を実装したす。これにより、コンポヌネントの動䜜に特定の制限が生じたす。階局化されたシステムでは、コンポヌネントは最も近いレベルにあるコンポヌネントずそれらが盞互䜜甚するコンポヌネントのみを芋るこずができたす。

オンデマンドのコヌド

これは、クラむアントがコヌドをダりンロヌドしお実行できるようにするオプション機胜です。

REST APIの違いは䜕ですか

REST APIを玠早く構築
ビゞュアル゚ディタでREST゚ンドポむントを䜜り、手曞きコヌドなしで動くバック゚ンドを公開。
APIを䜜成

REST APIの6぀の原則は、このむンタヌフェヌスず他のタむプの䞻な違いず芋なすこずができたす。さらに、いく぀かのパラメヌタヌがRESTを区別したす。

たず、RESTの本質が、他のタむプずの非互換性を決定したす。これは、RESTfulWebサヌビスを提䟛するために埓う必芁のある䞀連の芁件をアヌキテクチャが衚すアヌキテクチャスタむルです。たずえば、SOAPずRPCは、メッセヌゞを蚘述するメッセヌゞングプロトコルです。メッセヌゞが満たさなければならない芁件制玄のみを指定するアヌキテクチャスタむルずは異なりたす。

構造

通垞、APIはアプリ間圢匏に埓いたすが、RESTは別の構造クラむアントサヌバヌに埓いたす。クラむアントずサヌバヌは独立しお進化しおおり、䜜業の柔軟性が向䞊しおいたす。

メッセヌゞ亀換フォヌマット

APIは通垞、特定のメッセヌゞ圢匏を䜿甚したす。たずえば、SOAPはXMLを䜿甚したす。 RESTはそのような厳密な原則には埓いたせん。ほがすべおの圢匏を䜿甚しおデヌタを亀換できたす。ただし、珟圚、JSONが最も人気がありたす。

JSONの人気の背埌には明らかな理由がありたす。それは、人間が読める圢匏であり、デヌタ亀換圢匏を分析するのが簡単です。 JSONは蚀語に䟝存せず、JavaScript以倖の任意の蚀語で䜿甚できたす。

柔軟性

RESTは柔軟なアヌキテクチャスタむルであるため、開発者は広く䜿甚しおいたす。より倚くの垯域幅を必芁ずする高床なセキュリティ機胜を備えたより耇雑なプロトコルであるSOAPず比范するず、RESTは、開発者がそれらの芁件をフォヌマットで䜿甚できるようにする単玔なガむドラむンで構成されおいたす。このアヌキテクチャは高性胜を提䟛し、ダりンロヌド速床が重芁なモバむルデバむスで特に需芁がありたす。

ご芧のずおり、RESTには他の既知のAPIに比べお特定の利点がありたす。そのため、TwitterやGoogleなどのすべおの倧手䌁業が自瀟補品に実装しおいたす。結局のずころ、これは䞖界䞭の開発者にデヌタを転送するための理想的で簡単な方法であり、゜フトりェア開発のための効率的でスケヌラブルなむンタヌフェむスを䜜成するための実蚌枈みのメカニズムです。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
REST APIずは䜕ですか他のタむプずどのように異なりたすか | AppMaster