API

매일 공부(ML)·2021년 11월 19일
0

CS 

목록 보기
30/33

API

Web과 HTTP

  • Web

    • 표현형식(문서): HTML
    • 전송방법(프로토콜): HTTP(요청과 응답하는 서버/클라이언트모델)
    • 식별자:URI
  • HTTP메시지

    • Request Method(요청 메소드)

      • GET: read, 정보 요청

      • HEAD: 헤더 정보만 요청

      • POST: create, 정보 생성 및 변형할 때 사용

      • PUT: update, 정보 수정

      • DELETE: delete, 정보 삭제

      • OPTIONS: 사용가능한 메소드 확인

      • Response Code(응답 코드)

        • 1xx: 조건부 응답
        • 2xx: 성공
        • 3xx: 리다이렉션 완료
        • 4xx: 요청오류(클라이언트에 문제가 있다)
        • 5xx: 서버 오류
  • Header(헤더)

    • 다양하게 잘 쓰이고 종류가 많다

      • 공통 헤더 : 요청과 응답 메시지에 모두 사용

      • 요청 헤더 : 요청 메시지에서 사용

      • 응답 메시지 : 응답 메시지에 사용되는 응답 헤더

API이용

  • 정의: 다른 여러 애플리케이션 사이에 간편한 인터페이스 제공

  • 특징:

    • API 요청, HTTP -> 데이터 요청 -> 데이터는 JSON 이나 XML로 변환
  • 사용 시나리오

    	- 사이트에서 날씨 데이터 확인

    - 웹 사이트에서 주소 입력

      - 검색창에 날씨 및 날짜 입력
      
      - 날씨 확인
      
    • 사이트에서 날씨 정보 가져와서 표시

      • 사이트에서 제공하는 API에 날짜/ 지역 정보 전달

        • 해당 API에서 날씨 정보 응답

REST API

REST
  • 정의: 자원을 URI로 표시하고 해당 자원의 상태 주고 받기

  • 구성요소:

    	- 자원: URI
    • 행위: HTTP METHOD
    • 표현
  • 특징:

    	- Uniform Interface
    • Stateless
    • Cacheable
    • Self-descriptiveness
    • Client-Server
    • Layerd System
REST API 설계 규칙
  1. URI는 정보의 자원 표현

  2. 자원에 대한 행위는 HTTP METHOD표현

  3. 슬래시는 계층 관계 나타냄

  4. URI 마지막은 슬래시 사용안됨

  5. 하이픈은 URI의 가독성 높이기

  6. 언더바 혹은 밑줄은 URI 사용 안한다

  7. URI는 경로에는 소문자가 적합

  8. 파일 확장자는 URI에 포함 안됨

  9. 리소스 간의 관계 표현

API CODE

import requests
myapi = "af44a23b3fa31260fd92b236a65bffa3"

#lat: 위도, #lon:경도
def makeurl(lat, lng):
    url = "https://api.openweathermap.org/data/2.5/onecall?lat={}&lon={}&appid={}".format(lat, lng, myapi)
    return url

response = requests.get(makeurl(37,127))
weather = response.json()
weather
profile
성장을 도울 아카이빙 블로그

0개의 댓글