[CS]REST APIについて
REST? 👀
RESTは、Representation State Transferの略.
これはHTTPに基づくアーキテクチャであり,クライアントがサーバリソースにアクセスする方法を規定している.すなわち、サーバ上のリソースは
URI
としてマークされ、HTTP Method
を使用してリソースの状態が交換される.RESTのコンポーネント
RESTは、
자원
、행위
、および표현
の3つの要素から構成される.자원
サーバは、一意のIDを持つリソースを有し、クライアントは、これらのリソースに要求を送信する機会を有する.URIの末尾に表示されます.(ex: https://kdt.roto.codes/"todos" )これは、
행위
リソースの動作を意味します.HTTP方法は、GET、POST、PUT、PATCH、DELETEを含む.HTTP要求方法目的
GET
全て/特定リソースPOST
生成PUT
リソースの完全置換PATCH
リソースの一部修正DELETE
全て/特定リソースの削除使用方法(w.kdt)
const xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.send();
これは、표현
リソースの動作の具体的な内容を意味する.上記のリンクは、json形式のデータ応答の例として「todos」を提供しています.RESTの特徴🦾
Uniform Interface (일관된 인터페이스)
統合インタフェースは、統合リソースリクエストのアーキテクチャスタイルです.これは、クライアントプラットフォーム(android、ios、jsp)の特定の言語または技術に依存しないことを意味する.Stateless (무상태성)
RESTは各要求を個別に識別して処理し、前の要求は次の要求に関連付けるべきではない.したがって、セッション情報やCookie情報は使用されず、状態情報を格納管理することができる.(サーバはクライアントの状態(Cookie,細線)などに関心を持たない.Cacheable (캐시가능)
HTTP Web規格を使用しているため、キャッシュ機能を適用することができます.(大量のリクエストをすばやく処理できます.)Client-Server Architecture (서버-클라이언트 구조)
サーバはAPIを提供し、クライアントはユーザー認証に関連するトランザクションを管理します.要求はクライアントに限られ,応答はサーバに限られるため,相互依存性が減少する.Self-Descriptiveness (자체 표현)
RESTリクエスト/レスポンスメッセージは分かりやすい.HTTP POST , http://localhost:8080/board
{
"board":
{
"title":"제목",
"content":"내용"
}
}
Layed System (계층화)
REST内のサーバは複数の層から構成され、セキュリティ、ロードバランシング、暗号化などの層を追加することによって余構造を変更することができる.REST API / RESTful ? 👻
RESTベースのルールを遵守し、設計されたAPIをREST APIまたはRESTfulと呼ぶ.
REST APIの特性
REST API設計規則🌈
URI는 정보의 자원을 표현해야한다.
URIは資源中の動詞ではなく名詞を用いる.また、行為は表現されません.GET/todos/1 => Good👍
POST/student/phoneNumber => Good👍
GET/getTodos/2 => Nope💦
DELETE/deleteName/1 => Nope💦
자원에 대한 행위는 HTTP Method로 표현한다.
계층 관계는 / 를 이용해 나타낸다.
http://kdt/frontend/b/names
URI 마지막은 / 를 사용하면 안된다.
하이픈(-)은 가독성을 높이는데 사용한다.
언더바(_) 혹은 밑줄은 사용하지 않는다.
URI 경로에는 소문자가 적합하다.
파일 확장자는 URI에 포함하지 않는다.
URIにはメッセージ本体のコンテンツフォーマットを表すファイル拡張子は含まれていません.http://kdt/frontend.html => Node💦
REST応答コード🌹
2 xx成功
200:クライアント要求を正常に実行
201:クライアントがタスクの作成を要求し、正常に作成されました
204:リクエストは成功しましたが、応答できるコンテンツはありません.
3 xx直通
301:クライアントから要求されたリソースのURIが永続的に変更された場合に使用する
302:301ですが、一時的に住所を変更する場合に使用します.
304:このオプションは、以前にアクセスしたリクエストの結果と同じ場合に使用します.キャッシュされたページを保持
307:一時ページにリダイレクト
4 xxクライアントエラー
400:クライアントから無効なリクエスト
401:ログイン権限なしでページを開く
403:禁止されているページは、ログインするかどうかにかかわらずアクセスできません
404:見つからないページ、誤ってアドレスを入力した場合に使用
408:要求タイムアウト
409:サーバがリクエストの処理中に競合する
410:永続的に使用できないページ
5 xxサーバエラー
501:要求を処理する機能が作成されていない
502:可能なリクエストがサーバ間で失われた場合
503:サーバがクラッシュまたはメンテナンス中
504:サーバゲートウェイに問題が発生してタイムアウトした場合
505:HTTPバージョンが異なり、要求が処理できない
reference 🍑
Reference
この問題について([CS]REST APIについて), 我々は、より多くの情報をここで見つけました https://velog.io/@songsong/IT-REST-API-이해하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol