RESTful - 我什么时候应该使用POST和GET?

时间:2014-01-02 10:43:26

标签: wcf rest restful-architecture

这是我的WCF服务,用户可以在其中找到消息。 简单:

    [OperationContract]
    [WebGet(UriTemplate = "/GetMessages/{UserGLKNumber}/{UserPassword}/{SessionToken}")]
    Messages GetMessages(string SessionToken, string UserPassword, string UserGLKNumber);

我对这一行感到担忧:{UserGLKNumber}/{UserPassword}/{SessionToken}

在收到消息之前,我必须对用户进行身份验证。但是使用GET方法,我无法发送对象,例如POST

是否与REST模式一致?

请澄清我的疑虑。

2 个答案:

答案 0 :(得分:4)

已有帖子&关于这一点的问题,我总结了所有这些

  1. POST 动词用于何时创建新资源(在您的案例中为文件),重复操作将在服务器上创建多个资源。如果多次上传同名文件会在服务器上创建多个文件,那么这个动词就有意义了。

    当您更新现有资源或创建具有预定义ID的新资源时,将使用

    PUT 动词。多个操作将重新创建或更新服务器上的相同资源。如果为第二个,第三个...时间上传一个具有相同名称的文件会覆盖以前上传的文件,这个动词会有意义。

  2. 每次修改服务器上的某些状态(如数据库更新,删除)时,
  3. POST GET 用于readonly抓取,如数据库选择。

  4. 获取:获取条目集合(作为供稿文档)或单个条目(作为输入文档)。

    POST :从条目文档创建新条目。

    PUT :使用输入文档更新现有条目。

    删除:删除条目。

  5. <强>来源: Difference between PUT and POST using WCF REST

    另一个有用的读物​​是:

    What's the difference between a POST and a PUT HTTP REQUEST?

    http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

    http://msdn.microsoft.com/en-us/magazine/dd315413.aspx

    http://social.msdn.microsoft.com/Forums/vstudio/en-US/643e0d8b-80bb-45eb-8a84-318ac8de4497/difference-between-the-rest-verbs-put-and-post?forum=wcf

答案 1 :(得分:4)

就Restful服务而言......

发布
1.它可以安全地用于应用而非获得 2.它不配置代理服务器 3. Web服务器限制的大量数据 它没有缓存在浏览器上 5.输入为xml

获取
1.它不适合在应用中使用而不是获得 2.配置代理服务器 3.使用url编码技术 它缓存在浏览器上 如果你没有宣布任何人,这是违约 6将输入作为字符串输入,返回格式化输出。