使用prepend_urls添加Tastypie列表端点

时间:2015-01-14 23:05:54

标签: python django tastypie

我试图找出如何从我编写的API中显示所有端点。在浏览API的根目录时,我看到了一个资源列表和一个get端点。如何生成列表以显示所有端点?我尝试了django-tastypie-swagger,但结果相同。它只为每个资源列出了一些GET方法,并没有显示我添加到资源中的所有prepend_url。任何帮助表示赞赏!

编辑:

我在get_manufacturer_wedges中有一些辅助方法来帮助响应。旁注,我对python和整个堆栈都很新。我来自c#.net背景。我正在建造一个高尔夫应用程序。

class ManufacturerResource(BaseMongoResource):

    class Meta:
        max_limit = 0
        queryset = Manufacturer.objects.all().order_by('id')
        allowed_methods = ('get')
        resource_name = 'manufacturers'
        include_resource_uri = False

    def prepend_urls(self):
    return [
        url(r"^(?P<resource_name>%s)/(?P<pk>[\w\d_.-]+)/wedges/$" % self._meta.resource_name,
            self.wrap_view('get_manufacturer_wedges'), name="api_get_manufacturer_wedges"),
    ]

    def get_manufacturer_wedges(self, request, **kwargs):
        prim_key = kwargs['pk'] + "|Wedge"
        wedges = Club.objects(_id__startswith=prim_key).order_by('name')
        return self.create_response(request, HelperMethods.obj_to_list(wedges))

这是我转到api根目录时的输出(/ api / v1 /):

{
  "file_upload" : {
    "schema" : "/api/v1/file_upload/schema/",
    "list_endpoint" : "/api/v1/file_upload/"
  },
  "members" : {
    "schema" : "/api/v1/members/schema/",
    "list_endpoint" : "/api/v1/members/"
  },
  "manufacturers" : {
    "schema" : "/api/v1/manufacturers/schema/",
    "list_endpoint" : "/api/v1/manufacturers/"
  },
  "courses" : {
    "schema" : "/api/v1/courses/schema/",
    "list_endpoint" : "/api/v1/courses/"
  },
  "clubs" : {
    "schema" : "/api/v1/clubs/schema/",
    "list_endpoint" : "/api/v1/clubs/"
  }
}

0 个答案:

没有答案