API 모의에 편리한 json-server를 docker를 사용하여 빌드 해보기

11679 단어 JSON도커REST-APIapi
API 모의를 바삭하게 구축하고 싶다면, 제로 코딩으로 30초로 할 수 있다는 촉감의 json-server를 추천합니다.
json-server 는 npm으로 설치하지만, 개발 머신을 더럽히고 싶지 않을 때는 docker를 사용하여 구축하고 싶습니다. 그래서 docker를 사용하여 json-server를 구축해 보았습니다. github에 샘플 코드를 얹어 있습니다.
htps : // 기주 b. 코 m / 키요 27 / j 그렇게 r ゔ ぇ r 도 c

Dockerfile 준비



기본 이미지에 node를 사용하여 npm으로 json-server를 설치하고 있습니다. 컨테이너를 시작할 때 json-server를 옵션으로 시작할 수 있도록 했으므로 컨테이너를 시작하면 그대로 json-server를 사용할 수 있습니다.
FROM node:latest

RUN npm install -g json-server

WORKDIR /data

EXPOSE 3000

ENTRYPOINT ["json-server"]

CMD ["--watch", "db.json", "--host", "0.0.0.0"]

컨테이너 시작



준비한 Dockerfile을 사용하여 컨테이너를 시작합니다.
# ビルド
docker build -t json-server .

# 起動
docker run --name json-server -p 3000:3000 -v `pwd`/db:/data json-server

컨테이너가 기동할 수 있으면 http://localhost:3000 을 열어 톱 페이지가 표시되면 성공입니다.



사용법



json-server는 GET, POST, DELETE, PUT, PATCH를 지원합니다.

GET


$ curl -X GET http://localhost:3000/posts
[
  {
    "id": 1,
    "title": "json-server",
    "author": "typicode"
  },
  {
    "id": 2,
    "title": "new post",
    "author": "user"
  }
]
id 를 지정해 취득할 수도 있습니다. 경로 매개 변수를 사용하면 배열이 아닌 개체에서 반환됩니다.
# クエリパラメータを使用
$ curl -X GET http://localhost:3000/posts?id=1
[
  {
    "id": 1,
    "title": "json-server",
    "author": "typicode"
  }
]

# パスパラメータを使用
$ curl -X GET http://localhost:3000/posts/1
{
  "id": 1,
  "title": "json-server",
  "author": "typicode"
}
_embed 를 사용하면 자식 요소도 지정하여 검색할 수 있습니다.
$ curl -X GET 'http://localhost:3000/posts?_embed=comments&id=1'
[
  {
    "id": 1,
    "title": "json-server",
    "author": "typicode",
    "comments": [
      {
        "id": 1,
        "body": "some comment",
        "postId": 1
      }
    ]
  }
]

POST



POST를 사용하여 요소를 추가할 수도 있습니다.
$ curl -X POST -H "Content-Type: application/json" -d '{"title":"third post","author":"user"}' http://localhost:3000/posts
{
  "title": "third post",
  "author": "user",
  "id": 3
}

추가된 데이터는 db.json에 저장됩니다.

db.json
{
  "posts": [
    {
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    },
    {
      "id": 2,
      "title": "new post",
      "author": "user"
    },
    {
      "title": "third post",
      "author": "user",
      "id": 3
    }
  ],
  "comments": [
    {
      "id": 1,
      "body": "some comment",
      "postId": 1
    }
  ],
  "profile": {
    "name": "typicode"
  }
}

PUT, PATCH



json-server에서는 데이터 업데이트도 가능합니다.
$ curl -X PUT -H "Content-Type: application/json" -d '{"title":"mod post","author":"user"}' http://localhost:3000/posts/3
{
  "title": "mod post",
  "author": "user",
  "id": 3
}
$ curl -X GET http://localhost:3000/posts?id=3
[
  {
    "title": "mod post",
    "author": "user",
    "id": 3
  }
]
$ curl -X PATCH -H "Content-Type: application/json" -d '{"title":"patch post","author"":"user"}' http://localhost:3000/posts/3
{
  "title": "patch post",
  "author": "user",
  "id": 3
}
$ curl -X  GET http://localhost:3000/posts?id=3
[
  {
    "title": "patch post",
    "author": "user",
    "id": 3
  }
]

DELETE


DELETE 메서드를 사용하면 요소를 삭제할 수 있습니다.
$ curl -X DELETE http://localhost:3000/posts/3
$ curl -X GET http://localhost:3000/posts
[
  {
    "id": 1,
    "title": "json-server",
    "author": "typicode"
  },
  {
    "id": 2,
    "title": "new post",
    "author": "user"
  }
]

자바스크립트를 사용하면 여러가지 커스터마이즈할 수 있습니다만, 그것은 또 이번.

좋은 웹페이지 즐겨찾기