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`

좋은 웹페이지 즐겨찾기