[PYTHON] Eine Bibliothek "Apywrapper", die auf einfache Weise einen Wrapper für die RESTful-API entwickelt

TL;DR

--API-Wrapper kann mit explosiver Geschwindigkeit entwickelt werden

Ich denke, beim Erstellen eines API-Wrappers gibt es viele Dinge zu beachten, z. B. die Verarbeitung von Anforderungen und die Serialisierung von Antwortdaten. Wenn Sie jedoch wirklich Daten benötigen, kann es Zeitverschwendung sein, über sie nachzudenken und sich um sie zu kümmern.

_ Wenn ich einen Parameter auf den Server werfe, wird in der Antwort _ ein Objekt zurückgegeben

Das ist alles, was ich tun möchte.

Ich werde den Code einführen, der es mit apywrapper realisiert

Beispiel

from dataclasses import dataclass
from apywrapper import Apy

api = Apy(host="https://example.com/api", headers={"api_token": "xxxxxx"})


@dataclass
class User:
    user_id: str
    name: str
    age: int


@api.get("/users/{user_id}")
def get_user(user_id: str):
    return User, {"user_id": user_id}

Das ist es! Wenn Sie "get_user (" sh1ma ")" aufrufen, erhalten Sie ein Benutzerobjekt mit "user_id" "sh1ma"!

Kommentar

from dataclasses import dataclass
from apywrapper import Apy

Diese Zeile importiert den Body Apy von data class und apywrapper

api = Apy(host="https://example.com/api", headers={"api_token": "xxxxxx"})

Geben Sie hier den Host der API an. headers ist optional, wird aber in den meisten Fällen benötigt. (Token usw.)

@dataclass
class User:
    user_id: str
    name: str
    age: int

Definiert die Klasse von Objekten, die als Datenklasse benötigt werden. Dies wird verwendet, um die Antwort zu serialisieren.

@api.get("/users/{user_id}")
def get_user(user_id: str):
    return User, {"user_id": user_id}

Der Teil @ api.get (" / users / {user_id} ") ist sehr wichtig. Geben Sie hier den Pfad der API an. Sie können eine Variable an Path übergeben, indem Sie sie in wellenförmige Klammern wie "{user_id}" setzen.

def get_user (user_id: str): definiert eine Funktion. Es ist nichts Besonderes daran. Der Argumentname des Teils "user_id" wird nicht verwendet. Sie können also einen beliebigen Namen verwenden!

return User, {" user_id ": user_id} ist sehr, sehr wichtig! Hier ist alles gepackt! Von den zu "return" -Werten übergibt der erste "User" -Teil das zu antwortende Objekt (auch wenn eine Liste ("List [User]") zurückgegeben werden soll, geben Sie eine einzelne an, dh "User". Masu). Der folgende Teil {{user_id ": user_id}ist der Anforderungsparameter.user_id` ist eine Pfadvariable, aber andere Abfragen und JSON-Daten werden auf die gleiche Weise angegeben.

Es ist schwer zu verstehen, deshalb hier ein Beispiel.

Post-Daten

@api.post("/users")
def create_user(username: str, user_id: str):
    return User, {"user_name": username, "user_id": user_id}

Die Daten für POST sind JSON, aber Sie können Parameter auf die gleiche Weise wie für GET angeben.

Daten abrufen (mit Abfrage)

@api.get("/users/{user_id}")
def get_user(user_id: str, only_name: bool):
    return User, {"user_id": user_id, "only_name": True}

Sie können auch Abfragen und Pfadvariablen angeben.

Wie installiert man

pip install apywrapper

Schließlich

――Es befindet sich noch in der Entwicklung.

Recommended Posts

Eine Bibliothek "Apywrapper", die auf einfache Weise einen Wrapper für die RESTful-API entwickelt
Ich habe eine Python-Wrapper-Bibliothek für die Docomo-Bilderkennungs-API erstellt.
Erstellt einen Python-Wrapper für die Qiita-API
kabu Station® API-I hat einen Python-Wrapper für die REST-API erstellt
Qiita API Python Wrapper für die Stapelverarbeitung zum Abrufen von Qiita-Posts
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
Ich habe eine Python-Bibliothek erstellt, um die API von LINE WORKS aufzurufen
Erstellt eine Bibliothek für Python, die die morphologische Teilung problemlos handhaben kann
Ein Leitfaden für IoT mit MicroPython bis zur letzten Minute
Für Pandas-Benutzer ist es einfach, SQL zu üben
Ein Tool zur einfachen Eingabe von Python-Code
Ich habe eine Web-API erstellt
Implementierter Python-Wrapper für Qiita API v2
Ich habe eine Bibliothek für versicherungsmathematische Versicherungen erstellt
Ich habe versucht zu erklären, wozu der Python-Generator so einfach wie möglich ist.
Berühren Sie die Beispiel-v20-Python-Beispiele der OANDA v20-REST-API-Wrapper-Bibliothek für Python