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
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"!
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.
@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.
@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.
pip install apywrapper
――Es befindet sich noch in der Entwicklung.
Recommended Posts