JSON 서버로 REST API 생성
본문
프런트 엔드 개발자의 일반적인 작업은 JSON 형식의 일부 데이터를 프런트 엔드 애플리케이션에 전달하고 모든 것이 예상대로 작동하는지 확인하기 위해 백엔드 REST 서비스를 시뮬레이션 하는 것입니다.
물론 전체 백엔드 서버를 설정할 수 있습니다. Node.js, Express 및 MongoDB를 사용합니다. 그러나 시간이 좀 걸리고 훨씬 간단한 접근 방식이 프런트 엔드 개발 시간을 단축하는 데 도움이 될 수 있습니다.
JSON Server는 CRUD 작업으로 REST API를 매우 빠르게 설정하는 데 도움이 되는 간단한 프로젝트입니다. 프로젝트 웹 사이트는 https://github.com/typicode/json-server에서 찾을 수 있습니다.
다음에서는 JSON 서버를 설정하고 샘플 REST API를 게시하는 방법을 알아 봅니다. 또한 다른 라이브러리인 Faker.js를 사용하여 JSON 서버를 사용하여 노출되는 REST API에 대한 가짜 데이터를 생성하는 방법을 볼 수 있습니다.
JSON 서버 설치
JSON 서버는 NPM 패키지로 제공됩니다. Node.js 패키지 관리자를 사용하여 설치할 수 있습니다.
$ npm install -g json-server
-g 옵션을 추가하여 패키지가 시스템에 전역적으로 설치되었는지 확인합니다.
JSON File
이제 이름이 db.json 인 새 JSON 파일을 만들어 보겠습니다. 이 파일에는 REST API에 의해 노출되어야 하는 데이터가 포함되어 있습니다. JSON 구조에 포함 된 객체의 경우 CRUD 진입점이 자동으로 생성됩니다. 다음 샘플 db.json 파일을 살펴보십시오.
{
"employees": [
{
"id": 1,
"first_name": "Sebastian",
"last_name": "Eschweiler",
"email": "sebastian@codingthesmartway.com"
},
{
"id": 2,
"first_name": "Steve",
"last_name": "Palmer",
"email": "steve@codingthesmartway.com"
},
{
"id": 3,
"first_name": "Ann",
"last_name": "Smith",
"email": "ann@codingthesmartway.com"
}
]
}
JSON 구조는 세 개의 데이터 세트가 할당 된 하나의 직원 객체로 구성됩니다. 각 직원 개체는 id, first_name, last_name 및 email의 네 가지 속성으로 구성됩니다.
서버 실행
다음 명령을 실행하여 JSON 서버를 시작하겠습니다.
$ json-server --watch db.json
매개 변수로 JSON 구조 (db.json)를 포함하는 파일을 전달해야 합니다. 또한 — watch 매개 변수를 사용하고 있습니다. 이 매개 변수를 사용하여 서버가 감시 모드에서 시작되었는지 확인합니다. 즉, 파일 변경을 감시하고 그에 따라 노출 된 API를 업데이트합니다.
이제 브라우저에서 URL http : // localhost : 3000 / employees를 열 수 있으며 다음 결과가 표시됩니다.
출력에서 직원 자원이 올바르게 인식되었음을 알 수 있습니다. 이제 직원 링크를 클릭하면 http : // localhost : 3000 / employees에 대한 HTTP GET 요청이 다음 결과를 보여줍니다.
다음 HTTP 엔드 포인트는 JSON 서버에서 자동으로 생성됩니다.
GET /employees
GET /employees/{id}
POST /employees
PUT /employees/{id}
PATCH /employees/{id}
DELETE /employees/{id}
POST, PUT, PATCH 또는 DELETE 요청을 수행하면 변경 사항이 db.json에 자동으로 저장됩니다. POST, PUT 또는 PATCH 요청은 요청 본문에서 JSON을 사용하기 위해 Content-Type : application / json 헤더를 포함해야 합니다. 그렇지 않으면 200 OK가 되지만 데이터는 변경되지 않습니다.
추가 매개 변수로 URL을 확장 할 수 있습니다. 예 : 다음과 같이 URL 매개 변수를 사용하여 필터링을 적용 할 수 있습니다.
http://localhost:3000/employees?first_name=Sebastian
결과적으로 하나의 직원 개체 만 반환됩니다. 또는 모든 속성에 대해 전체 텍스트를 수행하십시오.
http://localhost:3000/employees?q=codingthesmartway
사용 가능한 URL 매개 변수의 전체 목록은 JSON 서버 문서 (https://github.com/typicode/json-server)를 참조하십시오.
POSTman으로 API 엔드 포인트 테스트
간단히 브라우저를 사용하여 GET 요청을 시작하는 것은 쉽습니다. 다른 유형의 HTTP 요청을 시작하려면 Postman (https://www.getpostman.com)과 같은 HTTP 클라이언트 도구를 사용할 수 있습니다. Postman은 MacOS, Windows 및 Linux에서 사용할 수 있습니다. 또한 Postman은 Chrome 앱으로 사용할 수 있습니다.
Get Request
Postman 사용자 인터페이스는 사용하기 쉽습니다. GET 요청을 시작하려면 다음 스크린 샷에서 볼 수 있는 것처럼 양식을 작성하십시오. 보내기 버튼을 클릭하면 JSON 형식으로 응답을 받게 됩니다.
DELETE REQUEST
해당 삭제 요청은 다음 스크린 샷에서 볼 수 있습니다.
POST REQUEST
새 직원을 만들려면 게시 요청을 수행하고 본문 콘텐츠 유형을 JSON (application / json)으로 설정해야 합니다. 새 직원 개체는 본문 데이터 섹션에 JSON 형식으로 입력됩니다.
PUT REQUEST
기존 직원 레코드를 업데이트하거나 변경하려는 경우 HTTP PUT 요청을 사용할 수 있습니다.
Mocking Data with Faker.js
지금까지 API에 의해 노출 된 데이터를 JSON 파일에 수동으로 입력했습니다. 그러나 더 많은 양의 데이터가 필요한 경우 수동 방식이 번거로울 수 있습니다. 이 문제에 대한 쉬운 해결책은 Faker.js (https://github.com/marak/Faker.js/) 라이브러리를 사용하여 가짜 데이터를 생성하는 것입니다. Faker.js를 JSON 서버에 통합하는 것은 쉽습니다. 아래 단계를 따르십시오.
먼저 현재 저장소에서 새 NPM 프로젝트를 초기화 해 보겠습니다.
$ npm init
다음으로 NPM 패키지 faker를 사용하여 Faker.js를 설치합니다.
$ npm install faker
Faker.js는 node_modules 폴더에 설치됩니다. 다른 파일 employee.js를 만들고 다음 JavaScript 코드를 삽입합니다.
// employees.js
var faker = require('faker')
function generateEmployees () {
var employees = []
for (var id = 0; id < 50; id++) {
var firstName = faker.name.firstName()
var lastName = faker.name.lastName()
var email = faker.internet.email()
employees.push({
"id": id,
"first_name": firstName,
"last_name": lastName,
"email": email
})
}
return { "employees": employees }
}
module.exports = generateEmployees
50 명의 직원을 포함하는 JSON 객체를 생성하기 위해 generateEmployees() 함수를 구현하고 있습니다. 이름, 성 및 이메일에 대한 가짜 데이터를 얻기 위해 Faker.js 라이브러리에서 다음 방법을 사용하고 있습니다.
- faker.name.firstName()
- faker.name.lastName()
- faker.internet.email()
JSON 서버는 가짜 데이터 생성을 담당하는 generateEmploees() 함수를 마지막으로 내 보내야 합니다. 이 작업은 다음 코드 줄을 사용하여 수행됩니다.
module.exports = generateEmployees
내보내기를 추가 한 후 employee.js 파일을 json-server 명령에 직접 전달할 수 있습니다.
$ json-server employees.js
이제 노출 된 REST API를 통해 Faker.js로 생성 된 50 개의 모든 직원 데이터 세트에 액세스 할 수 있습니다.
Video Tutorial
이 비디오 자습서에는 위의 텍스트에 설명 된 단계가 포함되어 있습니다.
또한 훌륭한 온라인 과정을 확인하십시오 : 완전한 웹 개발자 부트 캠프
웹 개발을 배우는 데 필요한 유일한 과정-HTML, CSS, JS, Node 등!
이 게시물은 CodingTheSmartWay.com에 처음 게시 되었습니다.
https://medium.com/codingthesmartway-com-blog/create-a-rest-api-with-json-server-36da8680136d
- 이전글autoComplete.js - 간단한 자동 완성 순수 바닐라 자바 스크립트 라이브러리 21.02.09
- 다음글알아야 할 기본 JavaScript 및 SSL 21.02.06