Help us understand the problem. What is going on with this article?

RESTful APIのリソース設計

More than 3 years have passed since last update.

RESTful APIの設計を行う上で、まずはリソース設計を行う。リソース設計では以下を検討する。

1. 何をリソースとするか


2. リソースに対するCRUD操作

抽出したリソースに対して、どのようなCRUD操作が必要かを検討する。なお、CRUD操作に関しては「RESTful APIとは何なのか」のRESTの原則 - 統一インターフェースでも述べた通り、HTTPの標準メソッドを利用する。

3. リソース間の従属関係(親子関係)


4. リソースの各項目のデータ型の定義


5. リソース定義の明文化


項目名 名称 データ型 詳細
firstName String -
lastName String -
age 年齢 String -

のような感じで明文化しても良いが、JSON Schemaを利用することで以下のメリットを得られる。

  • 既存のデータ型を記述できる
  • 人にも機械にも読める文書になる
  • 完全に構造化されたデータの検証ができる

そのため、明文化にはJSON Schemaを利用した方が良いかもしれない。 のサンプルを拝借

    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        "lastName": {
            "type": "string"
        "age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 0
    "required": ["firstName", "lastName"]


リソース設計 = DBのER設計ではないということ(DBのER設計とは切り離して考えたほうが良い)。また、「4. リソースの各項目のデータ型の定義」と「5. リソース定義の明文化」に関しては、インターフェース設計(後で投稿予定)で検討でも良い。


RESTful Webサービス
Web API: The Good Parts

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away