다음, 기본 서버 설정을 추가해 봅시다. 아래 코드를 복사하십시오
<span>npm init -y </span>
성공? 다른 CRUD 경로를 정의하려면 2 단계로 가자.
<span>npm i fastify --save </span>2 단계 : CRUD 경로를 정의하십시오
/API /블로그에서 모든 블로그를 받으십시오
코드를 깨끗하게 유지하려면 프로젝트 루트에서 컨트롤러 폴더를 정의해 봅시다. 여기에서는 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 경로를 등록합니다. 먼저 모든 블로그 경로를로드합니다. 다음으로, 우리는 모든 경로를 반복하여 하나씩 등록합니다.<pre class="brush:php;toolbar:false"><span>npm init -y
</span></pre>
<p> 완료? 블로그 경로가 작동하는지 확인해야합니다. Node Index.js를 사용하여 서버를 돌리고 http : // localhost : 3000/blogs/1을 방문하여 데모 데이터에서 첫 번째 블로그를 얻으십시오. 다음과 같은 결과가 표시됩니다. </p>
<pre class="brush:php;toolbar:false"><span>npm i fastify --save
</span></pre>
모두 좋은가요? 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 인 포트 변수를로드하고 싶습니다. <pre class="brush:php;toolbar:false"><span>npm init -y
</span></pre>
기본적으로 Fastify-Env 플러그인은 Fastify App 객체를 통해 모든 환경 변수를 사용할 수있게합니다 : App.config.port. 왜? Fastify-Env 플러그인은로드 된 구성을 Sonfkey에 첨부하여 기본적으로 구성으로 설정됩니다. 그러나 원한다면 이것을 다른 키로 변경할 수 있습니다. <p>
<with> Node Index.js로 프로젝트를 시작하고 출력을 모니터링하십시오. 터미널에 포트 변수가 인쇄되는 것을 볼 수 있습니다. </with></p>
<ins> 다른 흥미로운 플러그인을 사용할 수 있습니까?
<pre class="brush:php;toolbar:false"><span>npm i fastify --save
</span></pre>
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!