本页介绍如何修饰您的代码,以创建使用多个类实现的 API。如果您只使用一个类来实现 API,请参阅创建 API。如需详细了解所有可用的修饰器,请参阅修饰器。
只要您为 API 中的每个类使用相同的名称,就可以将 api_collection
替换为任何您想要的名称。您必须在 API 中的每个类之前加上修饰器,如前面的代码段所示。
关于 resource_name
参数
api_class
的可选 resource_name
参数是您要在 API 中公开的类的名称;这是在 API Explorer 中显示的名称,后跟该类中公开的任何方法。
关于 path
参数
api_class
的可选 path
参数指定类方法在网址中出现的相对位置。在前面的示例中,没有为 Shelves
类指定 path
,因此可以在根路径 /_ah/api/library/v1
下访问其方法。例如,可以从路径 /_ah/api/library/v1/list
访问 list
方法。
如果您为类指定了 path
参数,则指定的路径会附加到该根路径之后。在前面的示例中,为类 Books
指定了 path
参数 books
,因此可以在 /_ah/api/library/v1/books
下访问其方法。例如,可以从路径 /_ah/api/library/v1/books/best_sellers_list
访问 best_sellers_list
方法。
对于方法,path
参数是可选的。如果未指定 path
,则使用方法名称。为方法指定的任何路径都将附加到类路径之后。在前面的示例中,bookmark
被指定为 get_bookmark
方法的 path
。get_bookmark
方法可以从路径 /_ah/api/library/v1/books/bookmark
进行访问。
您可以通过指定以 /
开头的方法 path
参数来替换类 path
参数。例如,假设 Books
类中的 get_bookmark
方法具有以下路径:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
前导斜杠会将 get_bookmark
方法的路径更改为 /_ah/api/library/v1/bookmark
。
提供多类 API
在用于创建 API 服务器的 endpoints.api_server 代码中,请提供您为 api_class
集合指定的名称。例如,如果集合名称为 api_collection
,请按如下方式创建服务器: