Nesta página, descrevemos como decorar o código para a criação de uma API implementada em várias classes. Se você implementou sua API usando apenas uma classe, consulte Como criar a API. Consulte Decoradores para informações detalhadas sobre todos os decoradores disponíveis.
Substitua api_collection
pelo nome que preferir, desde que o mesmo nome seja usado para cada classe na API. Cada classe tem de ser precedida do decorador, conforme mostrado no snippet acima.
Sobre o argumento resource_name
O argumento resource_name
opcional para api_class
é o nome da classe que você quer expor na API; esse é o nome que aparece no APIs Explorer, anexado a todos os métodos expostos na classe.
Sobre o argumento path
O argumento path
opcional para api_class
especifica o local relativo em que os métodos de classe aparecem no URL. No exemplo anterior, um path
não é especificado para a classe Shelves
e os métodos dela são acessíveis sob a raiz, /_ah/api/library/v1
. Por exemplo, o método list
é acessível pelo caminho /_ah/api/library/v1/list
.
Se você especificar um argumento path
para uma classe, o caminho especificado será anexado à raiz. No exemplo anterior, o argumento path
de books
é especificado para a classe Books
, assim seus métodos são acessíveis em /_ah/api/library/v1/books
. Por exemplo, o método best_sellers_list
é acessível pelo caminho /_ah/api/library/v1/books/best_sellers_list
.
O argumento path
é opcional para métodos. Se você não especificar um path
, o nome do método será usado. Todos os caminhos especificados para métodos são anexados ao caminho da classe. No exemplo anterior, bookmark
é especificado como path
para o método get_bookmark
. O método get_bookmark
é acessível pelo caminho /_ah/api/library/v1/books/bookmark
.
É possível substituir o argumento path
da classe especificando um argumento path
do método que comece com /
. Por exemplo, suponha que o método get_bookmark
na classe Books
tenha o seguinte caminho:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
A barra inicial altera o caminho do método get_bookmark
para /_ah/api/library/v1/bookmark
.
Como disponibilizar uma API multiclasse
No código endpoints.api_server para a criação do servidor da API, informe o nome atribuído à coleção api_class
. Por exemplo, quando o nome da coleção for api_collection
, crie o servidor da seguinte maneira: