第2部:Django付きの最初のREST APIの構築

8562 ワード

APIs, JSON and ENDPOINTS


API = Application Programming Interface.
APIは、異なるソフトウェアコンポーネント間の通信方式である.
APIはインタフェースを定義し、APIでWeb APIを表示します.
最も一般的なWeb APIはRESTです.REST APIを作成します.
APIに最初に接触したユーザーであれば、共通のインタフェースになり、非常に便利です.
JSON = JavaScript Object Notation
APIで最もよく使われるファイル形式はJSONです.
APIは、URLモードなどのEndpointsによってアクセスされる.

REST, HTTP and STATUS CODES


REST = REpresentational State Transfer
RESTは、HTTPを通信プロトコルとして使用し、以下の条件を満たす.
  • URLエンドポイントからリソース
  • にアクセスする.
    JSONまたはXMLを
  • ファイル形式の
  • として使用
  • Stateless(1つのリクエストが別のリクエストXに依存)
  • 動作
  • GET、POST、PUT、DELETEのHTTP動詞により動作
  • を実行する.
    HTTP = HyperText Transfer Protocol
    HTTPはWeb上で情報を伝達するための内部重要プロトコルである.
    HTTP request method
    1. GET: retrieve a resource
    2. POST: create a new resource
    3. PUT/PATH: update a resource
    4. DELETE: delete a resource
    Status Code
    1xx: Information
    2xx: Success
    3xx: Redirection
    4xx: Client Error
    5xx: Server Error

    The Requests Module


    RequestsモジュールからHTTPリクエストを送信できます.
    <仮想環境設定&インストール要求>
    python -m venv venv
    venv\Scripts\activate
    pip install requests
    #vscode에서 venv의 python을 interpreter로 선택
    pip install pylint
    import requests
    
    def main():
        response = requests.get("http://www.google.com")
        # response = requests.get("http://www.google.com/random-address/")
        print("Status Code: ", response.status_code)
        # print("Headers: ", response.headers)
        # print("'Content-Type': ", response.headers['Content-Type'])
        print("Content: ", response.text)
    
    
    if __name__ == "__main__":
        main()
    import requests
    
    def main():
        response = requests.get("https://api.exchangeratesapi.io/latest")
        
        if response.status_code != 200:
            print("Status Code: ", response.status_code)
            raise Exception("There was an error!")
    
        data = response.json()
        print("JSON data: ", data)
    
    
    
    if __name__ == "__main__":
        main()
    import requests
    
    def main():
        # response = requests.get("https://api.exchangeratesapi.io/latest?base=USD&symbols=GBP")
    
        payload = {"base": "USD", "symbols": "SEK"}
        response = requests.get("https://api.exchangeratesapi.io/latest",
                                params=payload)
        
        if response.status_code != 200:
            print("Status Code: ", response.status_code)
            raise Exception("There was an error!")
    
        data = response.json()
        print("JSON data: ", data)
    
    
    
    if __name__ == "__main__":
        main()

    Your First Django API (Pure django)

    pip install django
    pip install pillow #이미지 처리 위해
    pip freeze > requirements.txt
    
    django-admin startproject onlinestore . #프로젝트 생성
    python manage.py migrate
    python manage.py createsuperuser
    python manage.py startapp products #INSTALL_APPS에 바로 추가해줘야함