0

I have started using TasyPie for an API and have build the following resource below. My issue is that client using the API does not makes POSTs in json i.e.

It's asks for POSTs like this....

http://somedomain/a/path?id={{ticket.external_id}}&status={{ticket.status}}

How to I allow POST via the URL? As at the moment TasyPie only works with json POST in the body.

class SMSResource(ModelResource):

    class Meta(CommonMeta):
        queryset = Batch.objects.all()
        resource_name = 'sms'
        list_allowed_methods = ['get', 'post']
        detail_allowed_methods = ['get']
4

2 回答 2

1

您不能通过 url 发送 POST。它是标头中的http方法,而不是url。

于 2013-06-14T09:11:08.660 回答
1

如果使用您的 API 的客户端不支持 POST HTTP 方法,那么您需要设计一种安全的方法来使用 GET 方法模拟 POST。使用 GET 更改数据并不安全,因此如果您没有其他选择,则需要考虑安全性。

我没有使用 Tastypie 框架,但这可能会有所帮助。 在不受支持的地方使用 PUT/DELETE/PATCH

编辑:
还要检查标题中的“内容类型”。对于 JSON POST,它是 application/json,对于常规表单 POST,它应该是 application/x-www-form-urlencoded。

于 2013-06-14T09:16:21.080 回答