TL;DR
L'autre jour, j'ai créé ma propre bibliothèque appelée apywrapper qui peut facilement développer un wrapper d'API, j'ai donc voulu tester sa puissance.
Le code que j'ai écrit est ~~~~
Tout d'abord, définissez le modèle comme ceci ...
from typing import Optional
from dataclasses import dataclass
@dataclass
class User:
id: str
permanent_id: int
name: str
profile_image_url: str
team_only: bool
followees_count: int
followers_count: int
items_count: int
description: Optional[str] = None
organization: Optional[str] = None
location: Optional[str] = None
facebook_id: Optional[str] = None
github_login_name: Optional[str] = None
linkedin_id: Optional[str] = None
twitter_screen_name: Optional[str] = None
website_url: Optional[str] = None
@dataclass
class Comment:
body: str
created_at: str
id: str
rendered_body: str
updated_at: str
user: User
Après cela, cela ressemble à la définition d'une API (vous n'avez pas à vous soucier des paramètres tels que les requêtes, les variables de chemin, json, etc.)
from apywrapper import Apy, get, post, delete, patch
from ._models import Comment
class Qiipy(Apy):
def __init__(self, access_token: str, host: str = "https://qiita.com/api/v2"):
super().__init__(host=host, headers={"Authorization": f"Bearer {access_token}"})
@get("/comments/{comment_id}")
def get_comment(self, comment_id: str):
"""Obtenez des commentaires
Args:
comment_id:Identifiant du commentaire
Returns:
Comment
"""
return Comment, {"comment_id": comment_id}
@delete("/comments/{comment_id}")
def delete_comment(self, comment_id: str):
"""Supprimer le commentaire
Args:
comment_id:Identifiant du commentaire
Returns:
None
"""
return None, {"comment_id": comment_id}
...
c'est tout! w
Si vous expliquez le code pour le moment
@method("/path/to/api") #chemin de l'API
def get_something(self, item_id: str):
return Something, {"item_id": item_id}
#dans ce cas`item_id`Devient une requête(Parce qu'il n'y a pas de variables dans le chemin)
#La valeur de retour est`Something`objet
from qiipy import Qiipy
qiita = Qiipy(access_token="xxx")
qiita.get_comment("zzzzzzzzz") #L'objet de commentaire est retourné
Se sentir comme
--Définition de l'entité (modèle) (https://github.com/sh1ma/qiipy/blob/master/qiipy/_models.py)
J'ai hâte de travailler avec vous.
Recommended Posts