프론트엔드 코드 구현과 변경 대응
문제
백엔드 없이 프론트엔드를 구현하기 위해 프리즘 목 서버를 사용합니다. 초기 설계에서 누락된 API 설계 변경 내용을 처리하는 문제를 해결해 볼 것이다.
프리즘 목 서버 구성
프리즘은 OpenAPI 정의서를 읽어 규격에 맞는 데이터를 응답으로 반환하는 오픈소스 목 서버입니다.
다음 명령어를 통해 프리즘을 설치할 수 있다.
$ npm install --global @stoplight/prism-cli
이후 yml 파일을 다운로드하고, 명령어를 사용하여 읽히면 해당 목 서버가 실행된다.
# 8080포트로 openap.yml 파일의 목서버를 시작합니다.
$ prism mock -p 8080 .\openapi.yml
다음과 같이 요청을 보낼 경우 바로 응답이 오는 것을 알 수 있습니다.
요청
curl http://localhost:8080/jobs
응답
{
"items": [
{
"id": 123,
"creator_user_id": 345,
"start_time": "2020-06-01T00:00:00Z",
"end_time": "2020-06-02T00:00:00Z",
"dog": {
"name": "Fido",
"age": 3,
"breed": "Doberman",
"size": "medium"
},
"activity": "walk"
}
]
}
프리즘 목 서버를 바탕으로 프론트엔드 개발
프리즘 서버는 실제 API 서버가 아니라 정해진 내용만을 정적으로 응답하는 서버라는 점을 알아야 합니다. 지금은 데이터의 형태를 처리하고 API 서버로부터 프론트엔드 앱으로 연결되는 파이프라인을 구현하는 데 중점을 둡니다.
OpenAPI 정의서에 예제 추가
example을 통해 다양한 예제를 선택해서 할 수도 있습니다. 프리즘은 의미없는 기본 값 대신에 OpenAPI 정의서의 examples에 작성된 내용을 바탕으로 데이터를 반환합니다.
examples:
two-items:
summary: Two Job Applications
value:
items:
- id: 123
user_id: 123
status: PENDING
- id: 123
user_id: 123
job_id: 123
status: COMPLETE
empty:
summary: Zero Jab Applications
value:
items: []
many:
summary: Many Job Applications
value:
items:
- id: 0
user_id: 123
job_id: 4012
status: COMPLETE
만약 특정 예제를 받고 싶다면 Prefer 헤더를 통해 요청할 수 있습니다.
$ curl -H "Prefer: code200,example=two-items" http://localhost:8080/foo
$ curl -H "Prefer: code=404" http://localhost:8080/foo
Last modified: 08 December 2024