Python BackEnd:最初のAPI開発


フレームとライブラリの違い


  • ライブラリ:開発者のコードでライブラリを実行する

  • フレームワーク:フレームワーク実行開発者のコード
  • 仮想環境にminicondaをインストールする


    装着すると「脈拍に有害」「脈拍に悪影響を及ぼす」
    こんな恐ろしい話を聞いて怖くなった.
    インストールしておきます
    しかし、インストール後、$ conda listでインストールを確認しました.
    ‘conda command notfound’$ export PATH="/root/anaconda3/bin:$PATH"彼に道を探して解決した.
    とにかく何かを取り付けるのは油断できない.
    さすがにきれいにできることは少ないようです

    APIの作成


    仮想環境の作成

    $ conda create --name api python=3.7まずpython=3.7と入力しませんでした.
    Pythonバージョンを選ぶのは私にとって怖いです.

    要するに、入力さえすれば、仮想環境を創造します.
    また、生成された仮想環境を使用するためには、アクティベーションコードを入力する必要がある
    次のコマンドを使用$ source activate api
    不思議なことにこれがまたあんなことになった
    Virtualenvを使用する場合は、ディレクトリにアクセスして仮想環境を実行する必要があります.
    condaの場合、$ source activate apiを入力するだけで実現できます.
    入力を無効にします.
    conda仮想環境の状態を継続的にチェックするために$ source deactivateを使用します.

    Flashのインストール


    まず、コマンドラインの一番前に(api)があることを確認します.
    これは本当に重要です.
    仮想環境で開発する必要があります
    コマンドラインの一番前でチェックした場合(api)$ conda env listだからだめだ
    念のため.$ pip install flask
    できる
    Virtualenvをそのまま使えばいいですか?こんなに早くこのような考えがあった.
    ちょっと不安
    まずこの設定が正しいかどうかを確認します
    from flask import Flask
    app = Flask("test")
    各端末に1行ずつ配置する.
    $ pip3 install flaskを維持し続けるのは問題ないという意味です.
    幸いですね.

    Pingエンドポイントの実装


    エンドポイントとは?

  • APIサーバが提供する通信チャネルまたはコンタクトポイント
  • フロントエンドサーバ等のクライアントは、バックエンドAPIサーバとの通信時にエンドポイント
  • にアクセスする.
  • 各エンドポイントには独自のURLアドレスがあり、それによって対応するエンドポイント
  • に接続することができる.
    各エンドポイントには固有の機能があります.これらの機能を有するエンドポイントは、集約されて1つのAPIを構成する.
    GraphQLは1つのエンドポイントのみを提供します
    pingエンドポイントを呼び出すと、応答はpongに戻ります.
    そんな簡単なものはどこに使いますか.
    フィットネス検査機能に使用します.

    フィットネス検査の終点?


    これは、APIサーバが実行中であるかどうかを簡単に判断するための機能です.

    APIコードの作成と実行


    これからは本当に創造します.
    まずカタログを1つお売りします
    それから私はコードを作ります.ファイルの名前はappです.pyを使います.
    # Flask를 사용하기 위해 import
    from flask import Flask
    
    # import한 Flask 클래스를 객체화(instantiate)하고 변수에 할당
    # app변수가 바로 API 어플리케이션이 된다(Flask 웹 어플리케이션)
    # app 변수에 API의 설정과 엔드포인트를 추가하면 API가 완성된다
    app = Flask(__name__)
    
    # Flask의 route 데코레이터를 사용하여 엔드포인트 등록
    # 고유 주소는 /ping HTTP메소드의 종류는 GET
    @app.route("/ping", methods=['GET']
    
    # "pong"만을 리턴하는 함수 구현
    # Flask가 알아서 HTTP Response로 변환하여 클라이언트에게 전송
    def ping():
        return "pong"
    このコードのポイントは、「エンドポイントの指定方法」です.
  • Flaskは通常、ルーティングレコーダを使用します.
    関数をエンドポイント
  • として登録する
    エンドポイントは
  • Flaskで実施される.
    最終的には、一般的な関数を実装することと大きな違いはありません
  • APIコードの全体構造が決定されると,次の開発の大部分は実装端点,すなわち関数である.
    作成したコードファイルを実行するには、ディレクトリに入る必要があります.>>
    ローカルホストhttp://127.0.0.1:5000/で実行します.
    次に、APIに接続して、エンドポイントが正常に動作しているかどうかをテストします.pingエンドポイントにHTTPリクエストを送信すればよい.
    HTTPリクエストを送信する方法はいろいろありますが、httpieというツールを使ってみます.$ FLASK_APP=app.py FLASK_DEBUG=1 flask runインストールが完了したら、以下のコマンドでHTTP Requestを実行します.$ brew install httpie
  • $ http -v GET http://localhost:5000/pingはverboseオプションです.

  • HTTPリクエストとレスポンスに関するその他の情報を提供します.
  • -v HTTPメソッドを「GET」に指定します.

  • 最後のアドレスは
    127.0.0.1 IPアドレスの5000ポートで実行されるAPIの/pingで指定されたエンドポイントに対してHTTP要求を発行する

  • ターミナルではpongと表示されています.
    右側の端末がAPIを実行しています.
    左側は右側のAPIにリクエストを送信しています.
    すなわち、APIはクライアント要求とサーバ応答を伝達している.
    また、ブラウザにURLを入力すると、

    同様にpong応答が見られる.

    バックエンドAPI開発入門における重要な内容

  • API開発の基本コア概念
  • を理解する
  • 以降のAPIコード全体構造
  • を理解し、実装する

    HTTPが重要


    HTTPのほかに、他のプロトコルを使用するAPIもあるかもしれませんが、今は考慮する必要はありません.