<aside> ⏳ 2022년 7월 9일
</aside>
API? 백앤드 개발자가 되기위해 이곳 저곳 정보를 모았을 때 가장 많이 보았던 단어이다. api는 무엇이고 어떤 종류가 있는지 공부해보려고 한다.
API = Application Programming Iterface
컴퓨터나 컴퓨터 프로그램 사이를 연결해주는 일종의 소프트웨어 인터페이스이다.(사양만을 정의한다.)
<aside> 💡 인터페이스와 라이브러리는 엄밀히 말하면 서로 다르다. →라이브러리는 API들을 기반으로 개발자에게 기능을 제공할 수 있도록 실제 구현된 구현체이다.
</aside>
function, method 또는 operation 등으로 다양하게 불린다.
API는 CRUD(Create, Read, Update, Delete)작업을 구현해야한다.
→ Read는 **“전체읽어오기”**와 **“세부읽어오기”**로 나누기 때문에 5가지의 기능을 구현한다.
Rest-api
웹 서비스를 개발할 때 일련의 제약조건을 준수하는 아키텍처 스타일이다.
전송 담당자는 “axios
” , docs를 생성할때 “swagger
”를 사용한다.
Rest-api로 작업하려면?
endpoint
, HTTPmethod
, Header
및 Body
끝에는 온라인 식별을 위한 UPI
가 포함되어 있습니다.Rest-api를 생성하다보면 “Rest-full”하게 구현을 해야한다.
<aside>
💡 “Rest-full”하다?
: Rest의 원리를 잘 지키는 시스템으로 각 기능을 명확하게 인식할 수 있도록 용이한 표현방식을 의미한다.
ex)app.get(”/users”,(req,res)⇒{…})
와 app.post(”/users”,(req,res)⇒{…})
는 같은 endpoint
를 가지지만 get
과 post
를 통해 기능을 나눴다!
</aside>
Graphql-api
apollo
”를 사용한다.두 API의 차이점
Rest-API | GraphQL-API | |
---|---|---|
함수이름? | 주소형태 | 일반적인 함수의 이름 |
응답결과물의 차이 | 모든 데이터 | 필요한 데이터만 골라서 |
응답결과물 용량 | 무거움 | 가벼움 |
효율성 | 낮음 | 높음 |
API 전송 요청하는 담당자 | ||
(라이브러리(도구)) | axios | apollo-client |
예.네이버에서 1번 글 조회 | http://naver.com/board/1 | board(1) |
각 API를 연습하기 위해서 필요한 프로그램 이름.
rest-api | graphql-api | |
---|---|---|
api 연습 | 포스트맨(postman) | 플레이그라운드(playground) 화면의 왼쪽 |
api 설명서 | ||
= API-Docs | 스웨거(swagger) | 플레이그라운드 화면의 오른쪽 |
프로그램에서 사용하는 명령어 정리
| | axios (rest-API) | apollo-client (graphql-API) | | --- | --- | --- | | 생성(Create) | POST | MUTATION | | 수정(Update) | PUT | MUTATION | | 삭제(Delete) | DELETE | MUTATION | | 조회(Read) | GET | QUERY |
명령어 사용 예