> 웹 프론트엔드 > JS 튜토리얼 > Fastify와 함께 첫 번째 REST API를 만드는 방법

Fastify와 함께 첫 번째 REST API를 만드는 방법

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-10 13:00:41
원래의
712명이 탐색했습니다.

Fastify와 함께 첫 번째 REST API를 만드는 방법 키 테이크 아웃

Fastify는 REST API를 구축하기위한 가볍고 빠른 대안을 제공하여 Express 및 Hapi와 같은 다른 Node.js 프레임 워크를 능가합니다. Fastify API 설정 API는 프로젝트 초기화, Fastify 설치 및 기본 서버 및 경로 설정 생성과 같은 간단한 단계가 필요합니다. Fastify의 강력한 플러그인 생태계는 기능의 쉽게 통합 및 확장을 허용하여 휠을 재창조하지 않고 개발자 경험을 향상시킬 수 있습니다. Fastify에서 스키마 유효성 검사 추가 API 요청 및 응답이 사전 정의 된 형식에 부착되어 신뢰성 및 오류 처리를 향상시킵니다. Fastify의 후크를 활용하여 개발자는 다양한 수명주기 이벤트를 가로 채어 응용 프로그램 흐름 및 동작을 더 잘 제어 할 수 있습니다.

Fastify는 백엔드 웹 개발을 위해 설계된 프레임 워크입니다. HAPI 및 Express와 같은 무거운 노드 .JS API 프레임 워크에 대한보다 가벼운 대안을 제공합니다. 2020 년 7 월부터 Fastify는 세 번째 버전의 프레임 워크를 발표했습니다. 이 세 번째 버전에는 요청 매개 변수로 들어오는 및 나가는 요청을 확인하기위한 개선 된 유효성 검사 기능이 제공됩니다. 또한 프레임 워크의 세 번째 버전은 KOA, ResitFy, Hapi 및 Express와 비교하여 가장 빠른 Node.js 프레임 워크라는 처리량 주장을 통합합니다. 자세한 내용은 벤치 마크 페이지에서 확인할 수 있습니다 Fastify는 가벼운 디자인으로 인해 많은 인기를 얻었습니다. 그러나 플러그인 생태계에 많은 관심이 있습니다. Fastify는 모든 것이 플러그인이라는 아이디어를 채택했지만 JavaScript를 사용하면 모든 것이 객체입니다. 이를 통해 프로젝트의 기능을 플러그인으로 신속하게 캡슐화하고 배포하여 다른 프로젝트가 코드를 사용할 수 있습니다.

. 이 튜토리얼을 시작하겠습니다. Fastify의 다음과 같은 측면을 배우게됩니다
    첫 번째 Fastify api 를 설정하는 방법 Fastify API 경로를 정의하는 방법 요청에 스키마 유효성 검사를 추가하는 방법
  • Fastify 플러그인을로드하고 사용하는 방법 Fastify 후크를 정의하는 방법
  • 요구 사항 및 설치 이 자습서를 따르려면 다음과 같은 것이 필요합니다
  • 최신 node.js 버전 Curl 또는 Postman과 같은 요청을 보내는 도구
  • 다음, 빈 노드 .js 프로젝트를 작성하십시오. 아직없는 경우 다음 명령을 사용하여 프로젝트를 설정할 수 있습니다.
  • 마지막으로, 우리는이 Fastify 의존성을 프로젝트에 추가하고 싶습니다 :
  • 모두 좋은가요? 다음 단계에서 기본 API 설정을 만들어 봅시다.
1 단계 : 기본 API 설정 먼저, 기본 API 설정을 만들어 봅시다. 시작하려면 프로젝트 루트 내에 index.js라는 새 파일을 만들어야합니다.

다음, 기본 서버 설정을 추가해 봅시다. 아래 코드를 복사하십시오

<span>npm init -y
</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
여기에는 몇 가지 일이 일어나고 있습니다. 먼저 Fastify 응용 프로그램 객체를로드하고 로깅을 활성화합니다. 다음으로, 우리는 JSON 응답으로 응답하는 루트 경로를 선언합니다. 코드 스 니펫의 마지막 부분은 응용 프로그램이 요청을 받기 위해 포트 3000에서 듣고 있음을 보여줍니다.

기본 서버 설정이 작동하는지 확인하겠습니다. 먼저 index.js 파일을 실행하여 서버를 시작해야합니다.

그 후, 브라우저에서 http : // localhost : 3000으로 이동하십시오. 다음 응답이 표시됩니다

성공? 다른 CRUD 경로를 정의하려면 2 단계로 가자.
<span>npm i fastify --save
</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
2 단계 : CRUD 경로를 정의하십시오 API는 경로를 얻는 데 쓸모가 없습니다. 블로그 처리를위한 더 많은 경로를 정의해 봅시다. 따라서 다음 경로를 만들어 봅시다 :

/API /블로그에서 모든 블로그를 받으십시오 /api/blogs/: id 에서 하나의 블로그를 받으십시오 게시물 /API /블로그에 블로그 추가

/API/Blogs/: id 에 업데이트 블로그를 넣으십시오 /API/Blogs/: ID touch index.js 삭제 삭제 블로그 삭제

가장 먼저해야 할 일은 블로그 컨트롤러를 만드는 것입니다.

2.1 단계 : 블로그 생성 컨트롤러 코드를 깨끗하게 유지하려면 프로젝트 루트에서 컨트롤러 폴더를 정의해 봅시다. 여기에서는 Blogs.js. 라는 파일을 만듭니다 이 파일에는 데이터베이스 통합 으로이 자습서를 복잡하게하지 않도록 일부 데모 데이터가 포함되어 있습니다. 따라서 우리는 각각 ID 및 제목 필드를 포함하는 블로그 개체가 포함 된 배열을 사용합니다. <p> 또한이 파일의 위의 모든 경로에 대해 다른 핸들러를 정의합니다. 핸들러는 항상 REQ (요청) 및 응답 매개 변수를 수락합니다. 요청 매개 변수는 요청 매개 변수에 액세스하거나 요청 본문 데이터에 액세스하는 데 유용합니다. </p> <code> : /controller/blogs.js 파일에 다음 코드를 추가하십시오 : <ul> <can> req.params.id를 통해/api/blogs/: id와 같은 경로의 요청 매개 변수에 액세스하는 방법에 유의하십시오. Post and Put Routes의 경우 Req.body를 통해 요청 본문에 액세스 할 수 있습니다. <li> 단계 2.2에서 경로 처리기를 경로 개체에 연결합니다. </li> 2.2 단계 : 블로그 경로와 커플 블로그 컨트롤러를 정의합니다 <keep> 다시 코드를 깨끗하게 유지하려면 프로젝트 루트에서 경로 폴더를 정의해 봅시다. 여기에서는 Blogs.js라는 파일을 만듭니다. 이 파일은 블로그 경로의 경로 개체를 보유합니다. <li> 운 좋게도 Fastify를 사용하면 경로 개체가 포함 된 배열을 정의 할 수 있습니다. 여기에서는 이전에 정의한 핸들러를 다른 경로에 부여 할 수 있습니다. 블로그 컨트롤러를 요구하는 것을 잊지 마십시오. 살펴 보겠습니다 : </li> <li> <def> 이제 우리는 모든 경로를 정의했습니다. 그러나 Fastify는 이러한 경로에 대해 알지 못합니다. 다음 단계는 Fastify 응용 프로그램 객체와 함께 경로를 등록 할 수있는 방법을 보여줍니다. </def> </li> 2.3 단계 : Fastify 경로를 등록하십시오 이 단계에서는 앱 객체에 Fastify 경로를 등록합니다. 먼저 모든 블로그 경로를로드합니다. 다음으로, 우리는 모든 경로를 반복하여 하나씩 등록합니다.<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;npm init -y &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <p> 완료? 블로그 경로가 작동하는지 확인해야합니다. Node Index.js를 사용하여 서버를 돌리고 http : // localhost : 3000/blogs/1을 방문하여 데모 데이터에서 첫 번째 블로그를 얻으십시오. 다음과 같은 결과가 표시됩니다. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;npm i fastify --save &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 모두 좋은가요? 3 단계에서 요청 및 응답에 스키마 검증을 추가하는 방법을 배우겠습니다. 3 단계 : 스키마 유효성 검사 추가 이 단계에서는 프로젝트에 스키마 검증을 추가하는 방법을 알려줍니다. 경로 정의에서 스키마 키를 사용하여 유효성 검사 스키마를 특정 경로로 전달할 수 있습니다. <with> 요청 매개 변수 및 응답을 검증하기 위해 Route/API/Blogs/: ID의 스키마를 정의하는 것으로 시작하겠습니다. 요구 사항? <.> <p> <eter> : id 매개 변수는 String 유형이어야합니다 <an an> 응답은 두 개의 속성 ID (정수)와 Title (String) 가 포함되어 있어야합니다. <h2> <valid> 경로/blogs.js 파일에 다음 유효성 검사 객체를 추가하십시오 </valid> </h2> <valid> 검증 객체를 경로에 연결하려면 스키마 키를 정의해야합니다. Routes Array에서/API/Blogs/: ID 경로를 찾아서 객체를 변경합니다. <p> <the> 블로그 게시물 /API /블로그를 추가하는 데 똑같이하겠습니다. 여기서는 req.body 객체에 제목 매개 변수가 포함되어 있는지 확인하려고합니다. 살펴 보겠습니다 : </the></p> <p> <have> 다음, 유효성 검사 객체를 올바른 경로에 다시 연결해야합니다. </have></p> <our> 검증을 확인하려면 ID 3으로 블로그를 검색해 봅시다. http : // localhost : 3000/api/blogs/3에서 브라우저를 엽니 다. 다음 응답이 표시됩니다 <ol> 이제, 실수를 저지르고 ID 필드의 매개 변수 검증을 Sting에서 객체로 변경합시다. <li> <the> API에서 동일한 리소스를 요청할 때 다음 오류 메시지가 표시됩니다. </the> </li> <the> 오류가 보이나요? 좋은! 향후 오류를 피하고 다음 단계로 이동하기 위해 문자열로 변경을 되돌 봅시다. <li>. 4 단계 : Fastify 플러그인을로드하십시오 여기, Fastify의 풍부한 플러그인 생태계를 사용해 봅시다. 데이터베이스 통합 또는 인증 설정과 같은 다양한 작업에 도움이되는 플러그인을 찾을 수 있습니다. Fastify 플러그인을 사용할 수있는 동안 허가를 처음부터 작성하는 데 시간을 보내는 이유는 무엇입니까? 종종, 당신은 특정 문제 나 작업에 도움이되는 Fastify 생태계 외부의 패키지를 찾고 싶습니다. 그러나 풍부한 플러그인 생태계를 제공함으로써 Fastify는 개발자 경험을 확실히 향상시키는 원 스톱 솔루션이됩니다! 플러그인에 대한 빠른 메모 : 기능을 캡슐화하기 위해 고유 한 플러그인을 만들 수 있습니다. 또한 해당 플러그인을 Fastify 응용 프로그램 개체에로드 할 수 있습니다. 기본적으로 Fastify는 먼저 Fastify 생태계에서 플러그인을로드합니다. 그 후, 사용자 정의 플러그인이로드됩니다 알겠습니다. 실용적으로합시다! Fastify-Env 플러그인을 사용하여 환경 변수로드 및 각 변수에 대한 기본값을 설정하는 데 도움이됩니다. 따라서이 종속성을 프로젝트에 추가해 봅시다 : <p> 다음으로 index.js 파일에 Fastify 응용 프로그램 객체를로드 한 후 종속성을로드 할 수 있습니다. index.js 파일은 다음과 같습니다 </p> <have>는 Fastify-Env 플러그인에 어떤 ENV 변수를 찾아야하는지, 어떤 기본값을 설정하는지 알려주는 옵션 객체를 정의해야합니다. 여기에서는 기본값이 1000 인 포트 변수를로드하고 싶습니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;npm init -y &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 기본적으로 Fastify-Env 플러그인은 Fastify App 객체를 통해 모든 환경 변수를 사용할 수있게합니다 : App.config.port. 왜? Fastify-Env 플러그인은로드 된 구성을 Sonfkey에 첨부하여 기본적으로 구성으로 설정됩니다. 그러나 원한다면 이것을 다른 키로 변경할 수 있습니다. <p> <with> Node Index.js로 프로젝트를 시작하고 출력을 모니터링하십시오. 터미널에 포트 변수가 인쇄되는 것을 볼 수 있습니다. </with></p> <ins> 다른 흥미로운 플러그인을 사용할 수 있습니까? <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;npm i fastify --save &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <uth> Fastify-Auth : Fastify에서 여러 인증 기능을 실행하십시오 <ear> Fastify-Bearer-Auth : Fastify를위한 Bearer Auth 플러그인 <ach> Fastify Caching : 일반 서버 측 캐시 및 ETAG 지원 </ach></ear></uth></ins></have> </li></the> </ol></our></valid></an></eter></p> <ors> Fastify-Cors : Fastify 응용 프로그램에서 CORS를 사용할 수 있습니다. <p> <def def> 5 단계 : 후크 정의 <let> 마지막으로, 약간의 후크를 정의해 봅시다. Fastify Hooks 문서에서 다음을 읽을 수 있습니다. “후크는 Fastify.addhook 메소드에 등록되며 응용 프로그램 또는 요청/응답 라이프 사이클의 특정 이벤트를들을 수 있습니다. 이벤트가 트리거되기 전에 후크를 등록해야합니다. 그렇지 않으면 이벤트가 손실됩니다.”. <def> 경로를 정의하기 전에 후크를 정의하십시오. </def></let></def></p> <see> 보시다시피, AddHook 함수는 먼저 듣고 싶은 후크를 받아들입니다. 이 예에서는 신청서에 등록 된 새로운 경로를 듣고 싶습니다. 다음으로 콜백 함수는 Route URL 또는 Route Method와 같은 많은 정보가 포함 된 RouteOptions 인수를 수용합니다. <p> <the> Onroute 후크에 대한 특정 세부 사항은 문서에서 찾을 수 있습니다. <the> Node Index.js를 사용하여 API를 시작하여 등록 된 경로를 확인하겠습니다. 터미널 출력은 다음과 같습니다 </the></the></p> <out> 같은 출력이 있었나요? 성공! 동시에, 이것은 Fastify 튜토리얼의 끝이었습니다. 짧은 결론 으로이 프로젝트를 마무리합시다. <p> 포장 </p> <a> Fastify는 풍부한 플러그인 생태계를 사용할 수있는 훌륭한 가벼운 프로젝트입니다. 처음부터 기능을 작성하는 대신 기존 플러그인을 사용할 수 있습니다. 다시 말해, Fastify는 개발자를위한 원 스톱 상점 역할을하며 개발자 경험을 확실히 향상시킵니다. <ol> <i> 개인적으로, 나는 응용 프로그램 내에서 다양한 수명주기 이벤트를들을 수 있으므로 Fastify Hooks 기능을 좋아합니다. <li>Fastify에 대해 자세히 알아 보려면 다음 문서 페이지를 확인하십시오. <p> </p> <a> 사용자 정의 플러그인을 만드는 방법? <types> TypeScript 지원을 추가하는 방법? <middle> CORS와 같은 미들웨어를 사용하는 방법? <ul> <li> <check> github 에서이 소개에 대한 리포를 확인할 수도 있습니다. <questions> fastify 로 REST API 생성에 대한 자주 묻는 질문 (FAQ) <pr> Fastify와 함께 REST API를 생성하기위한 전제 조건은 무엇입니까? <li> </li> Fastify와 함께 REST API를 만들기 전에 JavaScript 및 Node.js에 대한 기본적인 이해가 필요합니다. 컴퓨터에 Node.js 및 NPM이 설치되어 있어야합니다. Node.js는 서버에서 JavaScript를 실행할 수있는 JavaScript 런타임이며 NPM은 Node.js의 패키지 관리자로서 프로젝트가 의존하는 패키지를 설치하고 관리 할 수 ​​있습니다. Fastify를 설치합니까? <li> Node.js 패키지 관리자 인 NPM을 사용하여 Fastify를 설치할 수 있습니다. 터미널을 열고 다음 명령을 실행하십시오. NPM Fastify 설치. 현재 프로젝트 디렉토리에 Fastify를 설치합니다. 명령을 실행하기 전에 올바른 디렉토리에 있는지 확인하십시오. </li> </pr></questions></check> </li> </ul> Fastify로 서버를 만드는 방법? <p> </p> Fastify를 사용하여 서버를 만들려면 먼저 Fastify 모듈을 요구해야합니다. 귀하의 응용 프로그램. 그런 다음 새로운 Fastify 인스턴스를 만들 수 있습니다. 다음은 기본 예입니다. <h2> const fastify = require ( 'fastify') ({logger : true}) </h2> fastify.listen (3000, (err, address) => {<h3> if (err) trash err err </h3> fastify.log.info (`서버 청취에서 $ {wasse}} fastify에서 경로를 어떻게 정의합니까? <h3> </h3> Fastify에서는 경로 방법을 사용하여 경로를 정의합니다. 이 방법은 객체를 인수로 받아 경로의 속성을 정의합니다. 예는 다음과 같습니다. <example example> <p> fastify.route ({ 메소드 : 'get', Reply .send ({hello : 'world'}) </p> <h3>} </h3> <p> fastify에서 오류를 처리하는 방법? <br> <br> Fastify는 내장 오류 처리 메커니즘을 제공합니다. 회신 객체의 코드를 사용하고 메소드를 보내서 오류 응답을 보낼 수 있습니다. 예는 다음과 같습니다. <example example> <br> fastify.get ( '/error', function (request, reply) {})) <br> <br> Fastify에서 플러그인을 어떻게 사용합니까? <br> Fastify에는 기능을 확장 할 수있는 강력한 플러그인 아키텍처가 있습니다. 레지스터 메소드를 사용하여 플러그인을 등록 할 수 있습니다. 예는 다음과 같습니다. <example example> </example></example></p> fastify.register (require ( 'fastify-cors'), {<h3> 원산지 : true <valid> Fastify에서 요청을 검증하는 방법은 무엇입니까? <h3> </h3> Fastify는 Fastify-Schema라는 내장 검증 및 직렬화 라이브러리를 제공합니다. 이 라이브러리를 사용하여 들어오는 요청을 확인하고 나가는 응답을 연속화 할 수 있습니다. 예는 다음과 같습니다. <example example> <p> fastify.route ({ 메소드 : 'post', schema : {<br> body : { 유형 : 'Object', 필수 : ​​[ 'name', 'email'], 속성 : { 이름 : {type : 'string'}, <br> 이메일 : {type : 'string '} <br>} <br>} }, reply.send ({hello :'world '}) <br>} <br>} ) <br> Fastify 응용 프로그램을 테스트하는 방법 <br> Fastify는 테스트 목적으로 HTTP 요청 및 응답을 시뮬레이션 할 수있는 주입 방법을 제공합니다. 예는 다음과 같습니다. <example example> <br> fastify.inject ({<br> 메소드 : 'get', { console.log (response.payload) <br> Fastify 응용 프로그램을 어떻게 배포 하는가? <br> 다른 node.js 응용 프로그램과 마찬가지로 Fastify 응용 프로그램을 배포 할 수 있습니다. Heroku, AWS 또는 Google Cloud 플랫폼과 같은 플랫폼을 사용할 수 있습니다. 애플리케이션을 배포 할 때 Node_env 환경 변수를 생산에 설정하십시오. <castify> <br> Fastify는 비동기 코드를 처리하기위한 콜백 및 약속을 모두 지원합니다. 경로 처리기의 비동기/대기 구문을 사용하여보다 읽기 쉬운 방식으로 비동기 코드를 작성할 수 있습니다. 예는 다음과 같습니다. <example example> <br> fastify.get ( '/async', async function (request, reply) { const result = await someasyncoperation () return reture <br>}) <br></example></castify></example></p></example></valid> </h3></example></middle></types></a> </li></i> </ol></a></out></see></ors></.></with></keep></can> </ul>

위 내용은 Fastify와 함께 첫 번째 REST API를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿