2022-06-08(Section2_HTTP)

이상수·2022년 6월 12일
0
post-thumbnail
  1. 시작하게 된 계기 및 다짐 😮
  • 이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.

    • 그 날 배웠던 것을 길지 않아도 좋으니 정리하며 복습하는 습관 기르기
    • 주말에 다음주에 배울 내용들을 예습
    • 코딩 문제와 java코드들은 꾸준히 학습
    • 자료구조를 이용한 알고리즘 문제 해결 학습
  1. 학습 목표 😮
목표결과
REST API문서 활용 및 이해O
REST API를 활용한 디자인O
Open API와 API Key에 대한 이해O
Crud이해O
Postman을 이용하여 HTTP의 요청/응답 실습O
  1. 정리

CRUD

CRUD : 대부분의 컴퓨터 SW가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 언어이다.

 1. Create : POST
    - create는 서버에 정보를 올려달라는 요청입니다. create는 POST 메서드를 사용해 요청합니다.  
    - POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
    
 2. Read : GET
    - read는 GET 메서드를 사용해 요청합니다. 
    - GET를 통해 해당 리소스를 조회합니다.
    - 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져옵
    
 3. Update = PUT, PATCH
    - update는 정보를 바꾸는 요청
    - update는 PUT 혹은 PATCH 메서드를 사용해 요청
    -  PUT은 데이터 전체를 바꾸고 싶을 때, PATCH는 데이터의 일부만 수정하고 싶을 때 사용합니다.
    
 4. Delete = DETELE
    - delete는 정보를 지우는 요청입니다.
    - delete는 DELETE 메서드를 사용해 요청합니다. 
    - DELETE를 통해 리소스를 삭제할 수 있습니다.

REST API

 Representational State Transfer
 endpoint : URI부분의 끝맺음
 
 1. REST API
 - 웹(http)의 장점을 최대한 활용하는 아키텍처
 - 웹에서 사용되는 데이터/자원(resource)를 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
 - 되도록 엔드포인트에 리소스를 명시하는 것이 좋음

2. REST API 4단계
 - 0~3단계로 구성되어있고, 2단계까지만 적용해도 좋은 API
 - 리소스는 구체적인 이름을 사용

 (0) 단계 : 단순히 HTTP 프로토콜을 사용
    ex)POST /appointment HTTP/1.1
    
 (1) 단계 : 개별 리소스에 맞는 엔드포인트를 사용하여, 요청 받은 자원에 대한 정보를 응답(개별 리소스와의 통신 준수) 
            - 기존의 엔드포인트를 대신하는 것은 하위 호환성을 고려하지 않은 방식
               => Accept-Language헤더를 요청에 함께 제공
     ex) POST /doctors/허준 HTTP/1.1
     
 (2) 단계 : CRUD에 맞는 적절한 HTTP 메서드 사용, 메서드의 사용 규칙 준수
            - 리소스가 무엇인지, 명사 형태로 작성해야 함,get과 같은 동사 사용은 하지 않음
     ex) GET /doctors/허준/slots?date=2022-08-10 HTTP1.1
            
 (3) 단계 : HATEOAS(Hypertext As The Engine Of Application State)
            - 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
     ex) GET /doctors/허준/slots?date=2022-08-10 HTTP/1.1
     
  ★ 사진 참조
  

# 참고 : https://blog.restcase.com/5-basic-rest-api-design-guidelines/
           https://cloud.google.com/apis/design?hl=ko
           https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md


# GET : 서버의 데이터 변화시키지 않는 요청
   POST : 멱등성을 가지는 PUT/ 가지지않는 POST 잘 구분해서 사용
   PUT(교체)/PATCH(수정)도 구분하여 사용






OPEN API와 API키

1. OPEN API
 - 누구나 공공데이터에 접근할 수 있는 오픈된 API
 - https://openweathermap.org/api : 날씨 포털

2. API Key 
 - API를 이용하기 위해 서버를 여는 열쇠개념
 - 서버가 응답을 할 때 비용이 발생하므로, 권한을 제어






Postman

 - HTTP API 테스트 도구
 - JSON 형식으로 보낼 때는, raw 사용

ex) GET/ endpoint?조건

 # 실제 실습 






  1. 피드백 😮
  • HTTP 메서드를 이용하여 서버와 통신하기 위해 REST API규악을 통하여 서버와 클라이언트의 통신 방식을 알아보았다.
  • REST API중 2단계 까지만 적용하여도 좋은 API를 구현할 수 있고, 실제 이를 나중에 구현할 때 이 방식을 최대한 활용하여 해야 겠다.
  • OPEN API와 API키를 알아보았는데, OPEN API의 경우 누구나 사용할 수 있는 공공 데이터에 접근할 수 있는 오픈된 API이고 API Key는 해당 API를 접근하기 위한 열쇠의 역할이다.
  1. 앞으로 해야 될 것 😮
  • 매일 꾸준히 할 것
    • 꾸준히 velog 작성
    • Java 언어 및 Algorithm 공부(Coding-Test)
    • 틈틈히 운동 하기

  • 내일 해야 할 것
    • DB(DataBase)를 활용하기 위한 SQL과 이를 설계하는 스키바 방식에 대한 학습
    • DBMS/RDBMS(관계형 데이터베이스)로 DB/RDB를 관리하기 위한 시스템 이해
profile
Will be great Backend-developer

0개의 댓글