Node.js 101 - 작은 API 만들기
14754 단어 nodetutorialjavascriptbeginners
이제 Node.js 학습 여정을 계속할 준비가 되었습니다. :)
아무것도 놓치고 싶지 않다면 팔로우를 클릭하세요. 매일 배운 내용을 여기 Dev.to에 게시할 예정입니다.
더 이상 고민하지 않고 여기에 마지막 날의 메모 요약이 있습니다.
HTML 응답
마지막 과정에서는 서버를 만들고 텍스트와 약간의 html을 보냅니다. 다음은 HTML 응답의 또 다른 예입니다.
const http = require('http')
const server = http.createServer((req, res) => {
const pathName = req.url
if (pathName === '/friends') {
res.writeHead(200, {'Content-type': 'text/html' })
res.end('<h1>This is my friends page</h1>')
} else {
res.writeHead(404, {'Content-type': 'text/html' })
res.end('<h1>Page not found</h1>')
}
// send a response to client
})
// start server listening for request
server.listen(5000, 'localhost', () => {
console.log('Server is listening at localhost on port 5000')
})
JSON 응답
오늘은 JSON을 반환하는 작은 API를 만드는 방법에 대한 예제를 만들 것입니다.
API는 Application Programming Interface의 약자로 두 개의 응용 프로그램이 서로 통신할 수 있도록 하는 소프트웨어 중개자입니다. 우리의 경우 API는 JSON 데이터를 교환합니다.
JSON(JavaScript Object Notation)은 JavaScript 개체 구문을 기반으로 구조화된 데이터를 나타내는 표준 텍스트 기반 형식입니다. 일반적으로 웹 애플리케이션에서 데이터를 전송하는 데 사용됩니다.
API 및 JSON을 처음 사용하는 경우 해당 단어를 Google에 검색하고 이에 대해 자세히 알아볼 것을 강력히 권장합니다.
요컨대 API는 JSON 데이터를 노출하는 웹 서버 앱입니다.
웹 서버 애플리케이션에는 클라이언트가 수신된 데이터를 요청할 수 있는 전용 URL이 있습니다. 예를 들어
모든 친구 JSON 데이터를 검색하기 위한 GET 요청
http://example.com/api/friends
JSON 데이터 1번이 아닌 친구만 검색하는 GET 요청
http://example.com/api/friends/1
다음은 JSON 데이터의 예입니다.
{ "name":"John", "age":30, "car":null }
JSON 데이터는 코드에서 생성하거나, 파일에서 읽거나, 데이터베이스에서 읽거나, 타사 API를 통해 읽을 수 있습니다.
이 예제에서는 코드에서 직접 JSON 데이터를 생성합니다.
JSON은 Javascript Object Notation이기 때문에 정말 쉽습니다.
Js에서는 다음과 같은 객체 배열을 만들 수 있습니다.
const friends = [
{id: 1, name: 'Mike Taylor', age: 42},
{id: 2, name: 'John Lamkin', age: 44},
]
이 개체 배열은 다음과 같이 JSON으로 변환할 수 있습니다.
// Convert JS object to JSON string
const json = JSON.stringify(friends)
console.log(json) // [{"id":1, "name":"Mike Taylor","age":42},{"id": 2, "name":"John Lamkin","age":44}]
클라이언트 브라우저에 JSON을 보내려면 헤더에 형식을 지정해야 합니다.
res.writeHead(200, {'Content-type': 'text/json' })
res.end(json)
다음은 사용자가 방문할 때 JSON을 보내는 전체 예입니다./api/friends
const http = require('http')
const friends = [
{id: 1, name: 'Mike Taylor', age: 42},
{id: 2, name: 'John Lamkin', age: 44},
]
const json = JSON.stringify(friends)
const server = http.createServer((req, res) => {
const pathName = req.url
if (pathName === '/api/friends') {
res.writeHead(200, {'Content-type': 'text/json' })
res.end(json)
} else {
res.writeHead(404, {'Content-type': 'text/html' })
res.end('<h1>Page not found</h1>')
}
// send a response to client
})
// start server listening for request
server.listen(5000, 'localhost', () => {
console.log('Server is listening at localhost on port 5000')
})
이 코드는 모든 친구 데이터를 검색하는 데 적합하지만 특정 친구만 검색하는 경우는 어떻습니까? 예: api/friends/1
그렇게 하려면 URL 엔터티 이름과 ID를 분할하는 코드를 작성해야 합니다. 이를 달성하는 방법에는 여러 가지가 있습니다. 다음은 한 가지 방법입니다.
const pathName = req.url // '/api/friends/1'
// Array deconstructing
const [, , entity, id] = pathName.split('/') // ['', 'api', 'friends', '1']
이제 모든 정보가 있으므로 id: 1만 보내는 것이 쉽습니다.
const friend = friends.find((friend) => friend.id === Number(id)))
const json = JSON.stringify(friend)
res.end(json) // {id: 1, name: 'Mike Taylor', age: 42}
어려울 것 같죠?
절대 그런 식으로 코딩하면 안 된다고 걱정하지 마세요. Node.js에는 Express.js를 호출하는 프레임워크가 있습니다.
Express.js에는 라우팅, API 및 템플릿과 같은 서버 관리와 관련된 모든 복잡한 작업을 자동화하는 도구 세트가 있습니다. 우리는 백그라운드에서 추가되는 내용을 이해하는 데 도움이 되도록 학습할 뿐입니다. 여기서 목표는 개념을 이해하는 것뿐입니다.
결론
오늘은 여기까지입니다. 내일은 그 모든 학습 내용을 잘 활용하여 첫 번째 템플릿을 만들 것입니다. 조정 유지!
트위터에서 나를 팔로우하세요:
Reference
이 문제에 관하여(Node.js 101 - 작은 API 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ericchapman/node-js-101-part-3-create-a-small-api-89텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)