API 개요

3290 단어 REST-APIapi

소개



API(주로 REST)와 전제 지식이 되는 웹의 개요에 대해서

웹



현재 API 데이터 형식의 주류는 JSON

가정으로 웹과 관련이 있는 용어 설명



HTTP
통신을 위한 규칙(프로토콜)
자원
 Web 항상 존재하는 이름을 가지는 모든 정보
URI 현재 API의
리소스를 식별하는 ID 위치 + 이름 (URL은 위치 만)을 알 수 있습니다.
"웹 사이트는 브라우저에서 HTTP로 서버에 액세스하고 HTTP로 URI를 가져오고 표시합니다."
예 날씨 정보 (이름) https://weather.yahoo.co.jp(장소)
HTML
웹으로 표시하기 위한 문서 포맷

URI



URI 구문




① URI 체계
통신수단(http or https)이 대부분

②호스트명
도메인 이름 orIP 주소 어떤 주소 ~

③포트 번호
TCP 포트 번호 어떤 도어 ~

④패스
  디렉토리의 경로 어디의 방의 어디의 탄스의 어디의 서랍의~

⑤ 쿼리 파라미터
  이름 = 값 형식에 대한 추가 정보

⑥ URI 단편
웹 페이지의 위치 HTML에서 id로 설정하는 것과 같습니다.

멋진 URI 디자인



시원한 URI를 설계할 때 억제해야 할 포인트

프로그래밍 언어에 의존하는 정보를 포함하지 않음
   파일 확장자나 대문자 등
메소드 이름이나 세션 ID를 포함하지 않음
URI는 "자원을 가리키는 명사"를 사용합니다.
  동사는 사용하지 않는다
가능한 한 간단하고 인간이 읽고 이해할 수 있습니다.

URL 변경



301 Redirect를 사용하여 변경사항을 알리기
변경 전 URL에 액세스한 사용자를 자동으로 새 URL로 건너 뜁니다.

새로운 URL을 신규로 취급하는 것이 아니라 변경의 형태로 취급함으로써 신용 정보도 계승되어 SEO적으로도 좋다

HTTP



TCP/IP의 4계층 모델



HTTP는 TCP/IP(인터넷의 국제 규격)가 베이스로 되어 있다
TCP/IP는 4개의 계층으로 구성되어 있다

애플리케이션 계층
애플리케이션별 통신 프로토콜 결정
전송 계층
데이터 전송 누락을 확인합니다
전송 된 데이터가 제대로 도착했습니까?
인터넷 계층
IP 주소를 할당 통신을 실시한다
"데이터 보내기"
네트워크 인터페이스 계층
LAN 케이블 등 물리적 레이어

주요 HTTP 메소드



GET
"자원 얻기"
POST
리소스 만들기, 리소스에 데이터 추가
PUT
리소스 업데이트 (리소스 대상이 없으면 새로 생성)
A⇒B에 값을 변경하는 처리는 몇번 실행해도 B인 채이므로 해야 한다 등
DELETE
리소스 삭제
HEAD
자원의 헤더 취득
OPTIONS
"리소스가 서포트하고 있는 메소드의 취득

API 작업



json-server (json 파일을 API 서버 리소스와 견해 API를 만드는 패키지) 설치
% npm install -g json-server

리소스 확인
이번에는 db.json 사용
% json-server --watch db.json

//結果
        Resources
        http://localhost:3000/hogehohe

        Home
        http://localhost:3000

HTTP 메소드 실행
### GET
`curl -X GET "http://localhost:3000/hogehoge" -v`

### POST
`curl -X POST -H "Content-Type: application/json" -d '{"id": 4, "title": "ホゲホゲ"}' "http://localhost:3000/hogehoge" -v`

### PUT 
`curl -X PUT -H "Content-Type: application/json" -d '{"id": 4, "title": "ふーーー"}' "http://localhost:3000/hogehoge/4" -v`

### DELETE
`curl -X DELETE "http://localhost:3000/hogehoge/4" -v`

좋은 웹페이지 즐겨찾기