Rest-API만들기

김하은·2023년 6월 11일
0

REST-API를 만들기 위해 express라는 도구를 사용해보자. => 가장 유명한 도구!!
(Graphql의 경우에는 apollo-server라는 도구를 사용한다)
+ Swagger로 REST-API-Docs를 만든다.

yarn add express
=> express는 framework 라고 나와있다.

라이브러리
-하나의 도구를 의미

프레임워크
-라이브러리들을 모아둔 상자?

express프레임워크

  • 이 안에 api를 만들 수 있게 도와주는 도구들이 있다.

    app.post() =>post이라는 메서드를 요청한다.(등록요청)
    첫번째 자리에는 엔드포인트가 들어간다.

서버

24시간 접속을 기다리는 프로그램

서버컴퓨터

서버 프로그램이 실행되고있는 컴퓨터

벡엔드 서버 컴퓨터,
DB서버 컴퓨터,
프론트 서버 컴퓨터 가 있는데, 주로 그냥 서버컴퓨터 라고만 한다면 벡엔드 서버 컴퓨터를 의미한다.

// 게시물 등록하기 이 앞에있는 요청이 오면 뒤의 함수를 실행시켜주겠다 라는 의미.
// 여기 이 함수를 미들웨어함수라고 함.

// rest-api를 restful하게 엔드포인트 이름은 같게하고, 메서드만 다르게 사용.
app.post("/boards", (req, res) => {
  // 1. 데이터를 등록하는 로직 =>DB에 접속해 데이터 저장하기(프론트에서 입력한 데이터를 저장.)
// req(요청),res(응답). 이들은 안애 header와 body가 있었다.
// **header에는 요약정보**가 담긴다.
// **body는 실제 데이터들이 담기는 곳.**



  // 2. 저장결과 응답주기
  res.send("게시물이 성공적으로 등록되었습니다.")
});

// req.body에 요청내용있음.(등록할 내용) = > 단.. req.body를 console.log로 찍게 설정하고 post방식으로 요청을하려 JSON형태로 데이터를 입력하고 보내고서 서버를 확인해보니 제대로 나오지 않는데(undefined) 이유가 무엇일까??
==> express라는 프레임워크가 기본적으로 JSON형태를 처리하지 않기 때문이다. 뭔가를 추가해야한다.
맨 위쪽에 app.use(express.json())이렇게 추가해주면 서버console.log를 볼 수 있다.

post방식으로 핸드폰 번호 인증 api만들기
=> 번호를 입력하는것은 post방식.
입력하는것을 req.body로 받음.
JSON형태의 객체로 req.body에 들어가있고, 여기서 객체의 키를 뽑아오면 됨.


요롷게 작성!!!
그럼 입력한(post로 보낸)번호가 phone이라는 키로 req.body에 보내지고, req.body.phone으로 해당 값을 가져올 수 있음!


Swagger로 API-Docs만들기

npm에서 몇년전꺼 말고 아래아래에 express라고 나와있는

swagger-ui-express를 클릭!!

yarn add swagger-ui-express
다만 이것을 사용하게되면 초기에 세팅할것들이 많아지는데 아래쪽에 보면 simple하게 사용하고싶은경우 해서 swagger-jsdoc이라고 나와있다. 이것을 사용하면 되는데 이것도 설치가 필요하다.

yarn add swagger-jsdoc


보면 위쪽에 api설명, 아래쪽에 api가 들어간다.
그리고 추가로 예시샘플을 추가하면 왼쪽처럼 나온다.

세팅:

schema-> 결과 데이터

0개의 댓글