Programmers人工知能Defcos-Week 4 Day 1


😃[4週-Day 1]😃



REST Api


RESTful APIの設定?
Representational state transfer
これはいかなる方法論でもあり、最近最もよく見られる方法であり、最も有名な方法である.
GraphGLは恐ろしい攻撃中です
  • HTTP URI:Web上で情報を要求する場合、宛先位置の識別子はURIである.その中でも代表的なのがURLです.
  • HTTP方式でリソースをCRUDする.
  • HTTPメソッド:情報を要求するための各種プロトコル(HTTP)によって約束された要求メソッド.GET, POST, PUT, DELETE
  • from flask import Flask, jsonify, request
    app = Flask(__name__) # Flask를 바탕으로 한 객체 생성. 인자로 __name__전달.
    
    menus = [
        {"id":1, "name":"Espresso", "price":3800},
        {"id":2, "name":"Americano", "price":4100},
        {"id":3, "name":"CafeLatte", "price":4600},
    ]
    
    
    # 홈 디렉토리
    @app.route('/')
    def hello_code():
        return 'Hello World!'
    
    
    # GET /menus : 자료를 가지고 온다
    @app.route('/menus')
    def get_menus():
        return jsonify({"menus" : menus})
    # menus는 리스트로 json으로 변환할 수 없다. 
    
    
    # POST /menus : 자료를 자원에 추가한다.
    @app.route('/menus', methods=['POST'])
    def create_menu():
        request_data = request.get_json() # {"name" : ..., "price": ...}
        new_menu = {
            "id" : 4,
            "name" : request_data['name'],
            "price" : request_data['price'],
        }
        menus.append(new_menu)
        return jsonify(new_menu)
    
    
    if __name__ == '__main__':
        app.run()
    GET、POSTの構成は上記と同様である.

    PostmanによるAPIのテスト



    APIをテストできる非常に良いプログラム
    すべてのCRUDをテストして、伝達値と戻り値を検証して、素晴らしいです!