相关疑难解决方法(0)

如何在RESTful POST中返回生成的ID?

假设我们有添加新酒店的服务:

> POST /hotel
> <hotel>
>   <a>aaa</a>
>   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
> </hotel>
Run Code Online (Sandbox Code Playgroud)

然后我们有一个得到:

> GET /hotel

< HTTP/1.1 200 OK
< <hotel>
<   <a>aaa</a>
<   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
< </hotel>
Run Code Online (Sandbox Code Playgroud)

问题是我们为初始POST创建返回什么?我们想要返回ID(在服务器上生成)以获得新资源的"参考",但我们不想返回所有酒店数据,因为在我们的情况下,其中一个数据字段是〜300K的平面文件.

所以你应该回来:

< HTTP/1.1 200 OK
< <hotel>
<   <id>123</id>
< </hotel>
Run Code Online (Sandbox Code Playgroud)

或者你应该返回完整的对象:

< HTTP/1.1 200 OK
< <hotel>
<   <id>123</id>
<   <a>aaa</a>
<   <b>aaa</b>
>   <c>aaa.......this is 300K</c>
< </hotel>
Run Code Online (Sandbox Code Playgroud)

??

我对宁静的最佳实践感兴趣.

注意:这篇相关文章更多地讨论了返回什么,但更少关于如何返回它.

rest

28
推荐指数
3
解决办法
1万
查看次数

JQuery ajax调用在200上执行错误

我的c#/ WebApi服务器代码如下所示:

[HttpPost]
public HttpResponseMessage Logout()
{
    // do some stuff here ... 
    return Request.CreateResponse(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)

在客户端,我使用jquery 2.0.3进行ajax调用

ADDED:Jquery代码(typescript)......

    var ajaxSettings: JQueryAjaxSettings = {};
    ajaxSettings.type = 'POST';
    ajaxSettings.data = null;
    ajaxSettings.contentType = "application/json; charset=utf-8";
    ajaxSettings.dataType = "json";
    ajaxSettings.processData = false;

    ajaxSettings.success = (data: any, textStatus: string, jqXHR: JQueryXHR) => {
        console.log("Success: textStatus:" + textStatus + ", status= " + jqXHR.status);
    };
    ajaxSettings.error = (jqXHR: JQueryXHR, textStatus: string, errorThrow: string) => {
        console.log("Error: textStatus:" + textStatus + ", errorThrow = " …
Run Code Online (Sandbox Code Playgroud)

c# jquery

10
推荐指数
2
解决办法
5514
查看次数

标签 统计

c# ×1

jquery ×1

rest ×1