늦은 프로그래밍 이야기

221102 TIL (API, 개인페이지) 본문

내일배움캠프/TIL, WIL

221102 TIL (API, 개인페이지)

한정규 2022. 11. 2. 22:07

*참고자료

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io


API

 - API 는 Application Programming Interface 의 약자

 - 응용 프로그램을 사용할 수 있도록 운영체제, 프로그래밍 언어를 제공하는 기능을 제어할 수 있게 만든 인터페이스

 - URI로 자원(Resource)을 요청, 특정 형태로 표현(Representation)

 - HTTP Method를 적극적으로 활용하여 행위(Verb)를 나타낸다.

 - REST API의 요청으로 나오는 응답은 대체로 JSON으로 표현

더보기

   ex1. GET/users = user의 정보를 응답으로 달라

   ex2. DELETE/user/1 = user id:1에 해당하는 user를 제거하라


REST API

 - REST : Representational State Transfer 의 약자

 - 요청 자체만으로 무엇을 원하는지 알 수 있게 하는 방식

 - URI로 자원을 표현, 자원에 대한 행위는 HTTP Method를 사용

 -  URI 규칙

 1) 마지막이 /로 끝나서는 안된다.

 2) _ 대신 -를 사용한다.

 3) 소문자로 구성한다.

 4) 동사는 포함하지 않고, HTTP Method로 대체한다.

 5) 파일 확장자 표시하지 않기


HTTP Method

 - GET : 조회

 - POST : 생성

 - PUT : 모든 항목 변경

 - PATCH : 일부 항목 변경

 - DELETE : 삭제

   * GET으로 POST의 요청을 보낼 수도 있고 POST로 GET의 요청을 보낼 수도 있음.


TIL

어제 작업하던 미니프로젝트 중 개인페이지 부분의 방명록 수정과 삭제 기능을 구현해보았다.

처음에는 방명록 데이터를 보여주는 GET에 수정과 삭제 기능을 같이 넣었는데 될리가 없었다.

한참 애를 먹고 있었는데 팀원의 도움으로 수정과 삭제를 요청을 따로 해야된다는 걸 깨닫고

API를 다시 작성하였다. GET과 POST 방식만 사용하였다. 다른 방식들은 다음에 알아보도록 하자.

 

방명록에 구현해야할 기능은 작성, 보여주기, 수정, 삭제 총 4가지였다.

그 중에 작성은 POST요청, 보여주기는 GET요청으로 작성하여 어제 작업을 완료하였다.

팀원의 도움을 받은 결과 수정은 GET으로 데이터를 읽어오고 POST로 읽어온 데이터를 수정해야 된다는 것과

삭제는 GET요청으로 작성해야 된다는 것을 알게 되었다.

너무 질문을 남발하는 것도 좋지 않지만 너무 혼자 하려고 하지 말아야겠다.

작성 POST /api/rewiews/save
보여주기 GET /api/reviews/show
수정 - 읽어오기 GET /api/reviews/load/<num>
수정 - 변경하기 POST /api/reviews/edit/<num>
삭제 GET /api/reviews/delete/<num>

RESTful하게 작성되었는지는 모르겠다.

 

그 이후로 수월할 줄만 알았지만 착오였다.

삭제 기능은 수월하게 작업을 마치고 동작까지 되었지만 수정 기능은 정말 고난의 연속이었다.

이것저것 시도하다 결국에는 어느정도 데이터를 읽어오고 수정이 가능했지만 완벽하게 동작하지 않았다.

 

어제 반나절과 오늘 하루종일 메달렸지만 해결하지 못했다..

내일은 팀원들의 완성된 개인페이지들과 메인페이지를 합치는 작업을 해야하기에 수정 기능을

완벽히 완성을 못할 수도 있지만 내일도 최선을 다해봐야겠다.

'내일배움캠프 > TIL, WIL' 카테고리의 다른 글

1주차 WIL  (0) 2022.11.06
221104 TIL (Modal 만들어 보기)  (0) 2022.11.04
221103 TIL (미니프로젝트)  (0) 2022.11.03
221101 TIL (터미널 명령어)  (0) 2022.11.01
221031 TIL (Git, Github)  (1) 2022.10.31
Comments