WIL(5/23 ~ 5/29)

seonghyeon01·2022년 5월 29일
0

항해99

목록 보기
30/33

RESTful API

  • REST의 뜻
    “Representational State Transfer” 의 약자로 자원을 이름(으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달을 의미한다.

  • 자원의 표현
    자원: 해당 소프트웨어가 관리하는 모든 것
    -> Ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등
    자원의 표현: 그 자원을 표현하기 위한 이름
    -> Ex) DB의 학생 정보가 자원일 때, ‘students’를 자원의 표현으로 정한다.

  • 상태 전달
    데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
    JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
    월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
    REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
    REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

  • REST의 구조
    HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

    REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다. 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.

주특기 1주차 때 내가 작성한 API

전체 게시글 목록 조회 API(method = GET)

  • 제목, 작성자명, 작성 날짜를 조회하기

  • 작성날짜를 기준으로 내림차순 정렬하기

  • request = URL:/articles

  • response = title : string, name : string, date : string

    게시글 작성 API (method = POST)

  • 제목, 작성자명, 비밀번호, 작성 내용을 입력하기

  • request = URL:/articles
    body = title : string , name : string, password : Number, comment : string, Name_Id : Number, date : Number

  • response = payload
    게시글 조회 API (method = GET)

  • 제목, 작성자명, 작성 내용을 조회하기

  • request = URL:/articles:Name_Id param : Name_Id : Number

  • response = title : string, name : string, comment : string
    게시글 수정 API (method = PUT)

  • api를 호출할 때 입력된 비밀번호를 비교하여 동일할 때만 글이 수정되게 하기

  • request = URL:/articles:Name_Id/modify, param : name_Id body : password : Number

  • response = body: name: string, comment : string,
    게시글 삭제 API (method = DELETE)

  • api를 호출할 때 입력된 비밀번호를 비교하여 동일할 때만 글이 삭제되게 하기

  • request = URL:/articles:Name_Id/delete, param : name_Id body : password : Number

  • response = 삭제

결론 : RESTful API란 즉 좀 더 명확하게 자원의 표현과 정보전달을 하는 API라고 생각한다.

package.json

  • node.js는 npm과 yarn이 두개를 통해 모듈들을 설치한다. 그리고 yarn은 주로 react의 관련된 모듈들을 관리한다. 여기서 package.json의 역할은 모듈들의 의존성을 관리하는 파일이다.
  • package.json을 자동으로 생성할 때(npm init), -y를 명령어를 붙이지 않은 경우 입력하게 되는 것들을 나타낸다.
    name, version, description, author, license 등을 입력할 수 있는데, 프로젝트에 대한 간략한 내용을 입력할 수 있다. 처음 생성할 때 입력하지 않은 경우에 추후에 package.json을 변경하여 입력할 수 있다.
{
  "name": "node",
  "version": "1.0.0",
  "description": "개인 과제용 및 Node.js 연습",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/JungSungHyun/Node.js.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/JungSungHyun/Node.js/issues"
  },
  "homepage": "https://github.com/JungSungHyun/Node.js#readme",
  "dependencies": {
    "express": "^4.18.1",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^6.3.4"
  }
}

위에 package.json은 주특기 1주차때 나의 모듈들을 관리하는 package.json파일이다.

WIL회고

profile
I want to be programmer

0개의 댓글