In questa pagina viene descritto come decorare il codice per creare un'API implementata in più classi. Se hai implementato l'API utilizzando una sola classe, consulta la sezione Creazione dell'API. Vedi Decoratori per informazioni dettagliate su tutti i decoratori disponibili.
Sostituisci api_collection
con il nome che preferisci, purché utilizzi lo stesso nome per ogni classe nell'API. Devi precedere ogni classe nell'API dal decorator, come mostrato nello snippet precedente.
Informazioni sull'argomento resource_name
L'argomento resource_name
facoltativo per api_class
è il nome della classe che vuoi esporre nell'API; si tratta del nome che viene visualizzato in Explorer API, anteposto a qualsiasi metodo esposto nella classe.
Informazioni sull'argomento path
L'argomento facoltativo path
per api_class
specifica la posizione relativa
in cui vengono visualizzati i metodi di classe nell'URL. Nell'esempio precedente, path
non è specificato per la classe Shelves
, quindi i suoi metodi sono accessibili sotto la radice, /_ah/api/library/v1
. Ad esempio, il metodo list
è accessibile dal percorso /_ah/api/library/v1/list
.
Se specifichi un argomento path
per una classe, il percorso specificato viene aggiunto alla directory principale. Nell'esempio precedente, l'argomento path
books
è specificato per la classe Books
, pertanto i suoi metodi sono accessibili in /_ah/api/library/v1/books
. Ad esempio, il metodo best_sellers_list
è
accessibile dal percorso /_ah/api/library/v1/books/best_sellers_list
.
L'argomento path
è facoltativo per i metodi. Se non specifichi un path
, viene utilizzato il nome del metodo. Qualsiasi percorso specificato per i metodi viene aggiunto al percorso della classe. Nell'esempio precedente, bookmark
è specificato come path
per il
metodo get_bookmark
. Il metodo get_bookmark
è accessibile dal percorso
/_ah/api/library/v1/books/bookmark
.
Puoi eseguire l'override dell'argomento classe path
specificando un argomento del metodo path
che inizi con /
. Ad esempio, supponiamo che il metodo get_bookmark
nella classe Books
abbia il seguente percorso:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
La barra iniziale modifica il percorso per il metodo get_bookmark
in
/_ah/api/library/v1/bookmark
.
Gestione di un'API multiclasse
Nel codice endpoints.api_server che crea il server API, devi fornire il nome assegnato alla raccolta api_class
. Ad esempio, dove il nome della raccolta è api_collection
, devi creare il server come segue: