クールなプロジェクトを送信:1つの構成ファイルからAPIクライアント







こんにちは、Habrahabr! 私は最近、単一のymlファイルからのみ必要なAPIに対してクライアントラッパー全体を生成し、それをすぐにPythonパッケージインデックス(PyPi)にロードするツールを作成しました。 はい、 pipを使用して任意のプロジェクトに結果をインストールし、使用を開始できます。 詳細はこちら!





リクエストライブラリを使用して記述するGame of Thrones APIサーバーの架空のhttpリクエストコードを確認します。



import requests create_jon_snow_user = requests.post( 'https://gameofthrones.com/api/v1/user', params={ 'id': 7, 'name': 'Jon', 'surname': 'Snow', } ) get_jon_snow_user = requests.get( 'https://gameofthrones.com/api/v1/user', params={'id': 7} ) create_jon_snow_castle = requests.post( 'https://gameofthrones.com/api/v1/user/castle', params={ 'id': 7, 'castle': 'Winterfell', } )
      
      





そして今、クライアント(開発者)の構築に快適な構文を使用できるようにするコードについて。



 from gameofthrones_api import gameofthrones_api_client as got_api_client create_jon_snow_user = got_api_alient.user.create({ 'id': 7, 'name': 'Jon', 'surname': 'Snow' }) get_jon_snow_user = got_api_alient.user.get({'id': 7}) create_jon_snow_castle = got_api_alient.user.castle.create({ 'id': 7, 'castle': 'Winterfell', })
      
      





仕組み



acgツール( Githubへのリンク )がこの可能性を開きますが、このためには、次の形式の.acg.ymlという名前のファイルが必要です。



 pypi: username: dmytrostriletskyi password: d843rnd3 acg: name: gameofthronesapi version: 0.1.5 api: https://gameofthrones.com/api/v1 services: user: url: /user endpoints: create:post, get:get user.castle: url: /user/castle endpoints: create:post
      
      





PyPiのユーザー名とパスワードを指定して、 acgがクライアントをアカウントにダウンロードし、このパッケージをpip経由でインストールできるようにします。acgは、Pythonパッケージインデックス(PyPi)でパッケージをダウンロードするために必要なパラメーターを.pypircファイルに書き込みます。



次に、クライアントを作成しているバックエンドサーバーに移動します。





acgをインストールします



pipを使用してacgをインストールできます。



 $ pip install acg
      
      





Pip3:



 $ pip3 install acg
      
      





または、ソースコードをコンパイルします。



 $ python setup.py install
      
      





Acgチーム



.acg.ymlを作成し、そこで設定を入力し、構成ディレクトリでターミナルを開きました。



 $ acg
      
      





それに応じて構成とクライアントを更新する場合も、 acgを引き続き使用します。 新しいダウンロードごとに、クライアントパッケージのバージョンを変更する必要があることに注意してください。 パッケージの新しいバージョンをインストールするときは、 -no-cache-dirまたは-Uフラグを忘れずに使用してください。



競合を避けるために、プロジェクトで生成されたすべてのプロジェクト(フォルダー)を削除することをお勧めします( acgがプロジェクトを再ビルドするたびに)。



クライアントをインストールして使用する方法



インストールには、おなじみの `pip install {name}`コマンドが必要です。この場合、パッケージ名は設定ファイルの値の名前になります。



また、簡単に使用でき、インストールされているモジュールから必要なすべてのパラメーターを持つオブジェクトをインポートします。 クライアントは常にパッケージの名前を繰り返しますが、 _client部分でそれ自体を補完します。



たとえば、 telegrambotapiプロジェクトの構成を作成しました。

次に、次のようなPythonコードでクライアントを使用します。



 from telegrambotapi import telegrambotapi_client
      
      






All Articles