0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【RestAPI?】初心者向けにざっくり解説

Posted at

目的

最近流行のpython, djangoを触ってAPIを実装しようとしたときに、django_restframeworkなるもので簡単にRESTAPIが実装できると言うことを知ったものの、RestfulなAPIとはどのようなものか完全には理解できていなかったためここで同じように曖昧なイメージを持っている方々に共有してみむとせん。

前提

API自体の知識は多少ある方。
RestfulAPIと言う名前を聞いたことがある方

概要

REST APIは「REST」と呼ばれるAPIの設計思想に基づいたweb用のapiのこと。
RESTには以下の4原則がある。
①ステートレス
②統一インターフェース
③接続性
④アドレス可能性
以上の四つの原則に従って実装されたAPIのことをRESTAPIと呼ぶ。
具体的に4原則について説明する

詳細

1. ステートレス

サーバーにユーザーセッションなどの「状態」(ステート)を持たない(レス)前提で情報のやり取りを行う。
→ やり取りが一回ごとに完結する。
→ 2度目のアクセスをしてもサーバー側は何も記憶がない

2. 統一インターフェース

例えば
①HTTPメソッドでサーバーにリクエストを送るよ
②JSON形式のデータを送るよ
などのようにブラウザとサーバのインターフェースの定義を統一する

3. 接続性

情報の内部に、別の情報の状態へのリンクを含めることができる。

4. アドレス可能性

全ての情報が唯一かぶる事のない識別子を持っていて、提供する情報をその識別子で表現可能
具体例で言うとメンバーの情報は一意のidやusernameを持っているため、 「/member/pk/」このようにして指定したメンバーに対して編集などの動作を行うことができる。

具体的には

一番大きなポイントとしては以下のように、同じuriでも異なるHTTPメソッドでリクエストを投げる事で異なる動作を行うことができると言う事。
このことによりシンプルでわかりやすいAPIが作成できると言うことだ。

HTTPメソッド リソース 概要
GET /member/ メンバーの一覧を取得
GET /member/pk/ pkで指定したメンバーの情報を取得
POST /member/ 新規のメンバーを登録する
PUT /member/pk/ pkで指定したメンバーの情報を更新する/pkにメンバーがなければ追加する
DELETE /member/pk/ pkで指定したメンバーの情報を削除

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?