GVKun编程网logo

REST API-为什么使用PUT DELETE POST GET?(restful get post put delete)

11

本文将带您了解关于RESTAPI-为什么使用PUTDELETEPOSTGET?的新内容,同时我们还将为您解释restfulgetpostputdelete的相关知识,另外,我们还将为您提供关于@Con

本文将带您了解关于REST API-为什么使用PUT DELETE POST GET?的新内容,同时我们还将为您解释restful get post put delete的相关知识,另外,我们还将为您提供关于@Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解、@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)、AJAX 对 get/post/put/delete 的支持的实用信息。

本文目录一览:

REST API-为什么使用PUT DELETE POST GET?(restful get post put delete)

REST API-为什么使用PUT DELETE POST GET?(restful get post put delete)

因此,我在浏览有关创建REST API的一些文章。其中一些建议使用所有类型的HTTP请求:like PUT DELETE POST
GET。我们将创建例如 index.php 并以这种方式编写API:

$method = $_SERVER[''REQUEST_METHOD''];$request = split("/", substr(@$_SERVER[''PATH_INFO''], 1));switch ($method) {  case ''PUT'':    ....some put action....     break;  case ''POST'':    ....some post action....     break;  case ''GET'':    ....some get action....     break;  case ''DELETE'':    ....some delete action....     break;}

好的,理所当然-我对Web服务尚不甚了解。但是,仅通过常规或(包含方法名称和所有参数)接受 JSON
对象,然后也以JSON进行响应会不会更容易。我们可以通过PHP轻松地进行序列化/反序列化,并且无需处理不同的HTTP请求方法就可以对数据进行任何处理。POST``GET``json_encode()``json_decode()

我想念什么吗?

更新1:

好的-在研究了各种API并学习了很多有关 XML-RPCJSON-RPCSOAPREST的知识之后,
我得出了这样的API合理的结论。实际上,堆栈交换实际上是在他们的网站上使用这种方法的,我确实认为这些人知道他们在做什么堆栈交换API。

答案1

小编典典

的想法 RE 表象 小号 泰特 Ť 转让(BOT)是不是在可能的最简单的方法访问数据。

您建议使用发布请求来访问JSON,这是访问/处理数据的一种完全有效的方法。

REST是一种 有意义 的数据访问方法。当您在REST中看到请求时,应该立即了解数据的情况。

例如:

GET: /cars/make/chevrolet

可能会返回雪佛兰汽车的清单。 好的REST
api甚至可以在querystring中包含一些输出选项,例如?output=json?output=html,这将允许访问者决定信息应以哪种格式编码。

关于如何合理地一体化的数据类型为REST
API比特思考后,我已经得出结论,最好的办法明确指定的数据类型是通过已存在的文件扩展名,例如.js.json.html,或.xml。缺少的文件扩展名将默认为默认格式(例如JSON);不支持的文件扩展名可能返回501NotImplemented状态码。

另一个例子:

POST: /cars/{ make:chevrolet, model:malibu, colors:[red, green, blue, grey] }

可能会在db中创建具有关联颜色的新雪佛兰马里布。我说这 很可能 是因为REST
api不需要与数据库结构直接相关。它只是一个屏蔽接口,因此可以保护真实的数据(例如,它像数据库结构的访问器和更改器一样被保护)。

现在我们需要讨论幂等问题。通常,REST 通过HTTP
实现CRUD。HTTP使用GETPUTPOSTDELETE为请求。

REST的一个非常简单的实现 可以 使用以下CRUD映射:

Create -> PostRead   -> GetUpdate -> PutDelete -> Delete

此实现存在一个问题:Post被定义为非幂等方法。这意味着相同Post方法的后续调用将导致 不同的
服务器状态。Get,Put和Delete是幂等的;这意味着多次调用它们应导致相同的服务器状态。

这意味着请求如下:

Delete: /cars/oldest

实际上可以实现为:

Post: /cars/oldest?action=delete

鉴于

Delete: /cars/id/123456

如果调用一次或调用1000次,将导致相同的服务器状态。

处理该oldest物品的移除的一种更好的方法是要求:

Get: /cars/oldest

并使用ID结果数据中的发出delete请求:

Delete: /cars/id/[oldest id]

这种方法的问题是,是否/cars/oldest请求时间和delete发布时间之间添加了另一个项目。

@Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping

@Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping

https://blog.csdn.net/magi1201/article/details/82226289(copy)   

最近学习看一些代码,发现对于发送请求这件事,有的地方用@RequestMapping,有的地方用@PostMapping,为了搞清楚区别,特意查了下spring 源代码,现在特此记录下。

 @GetMapping用于将HTTP get请求映射到特定处理程序的方法注解
具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

@PostMapping用于将HTTP post请求映射到特定处理程序的方法注解
具体来说,@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。

下面我们来看下@GetMapping的源码,可以对上面的两句释义给予充分的支撑。

/**
 * Annotation for mapping HTTP {@code GET} requests onto specific handler
 * methods.
 *
 * <p>Specifically, {@code @GetMapping} is a <em>composed annotation</em> that
 * acts as a shortcut for {@code @RequestMapping(method = RequestMethod.GET)}.
 *
 *
 * @author Sam Brannen
 * @since 4.3
 * @see PostMapping
 * @see PutMapping
 * @see DeleteMapping
 * @see PatchMapping
 * @see RequestMapping
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.GET)
public @interface GetMapping {
 
    /**
     * Alias for {@link RequestMapping#name}.
     */
    @AliasFor(annotation = RequestMapping.class)
    String name() default "";
 
    ...
 
}

上面代码中,最关键的是 @RequestMapping(method = RequestMethod.GET),这行代码即说明@GetMapping就是@RequestMapping附加了请求方法。同时,可以看到@GetMapping这个注解 是spring4.3版本引入,同时引入的还有@PostMapping、@PutMapping、@DeleteMapping和@PatchMapping,一共5个注解。


所以,一般情况下用@RequestMapping(method = RequestMethod. XXXX)即可。


@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解

最近写项目中突然发现有人再controller层写@PostMapping,这对于经常用@RequestMapping的我来说,感到跟奇怪,网上搜寻了一些资料,特在此整合一下:

Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping} 来帮助简化常用的HTTP方法的映射 并更好地表达被注解方法的语义

@GetMapping: 处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)
新方法可以简写为:
@GetMapping("/get/{id}")
@PostMapping: 处理post请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”,method = RequestMethod.POST)
新方法可以简写为:
@PostMapping("/get/{id}")
@PutMapping: 和PostMapping作用等同,都是用来向服务器提交信息。如果是添加信息,倾向于用@PostMapping,如果是更新信息,倾向于用@PutMapping。两者差别不是很明显。
@DeleteMapping 删除URL映射,具体没有再实践中用过,不知道好在什么地方
@PatchMapping 至今不知如何用,再什么场景下用。。。有知道的欢迎留言或私信
上面所有的mapping归根到底就是两种请求,即:post和get,Spinrg官方引进众多请求的原因个人感觉是,简化配置。post和get两者的区别如下:
首先,什么情况下是get请求呢:

直接在浏览器地址栏输入某个地址
表单默认的提交方式
什么情况下是post请求呢:

设置表单method = “post”
ajax type: ‘post’,
浏览器通过url处理的请求为get请求,如果后台限制只能用post请求会发生如下错误:

method not allowed, The specified HTTP method is not allowed for the requested resource.
1
get请求特点:
a. 请求参数会添加到请求资源路径的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
b. 请求参数会显示在浏览器地址栏,路由器会记录请求地址 (极为的不安全)
c.如果传输中文,必定会乱码(原因:get请求默认编码格式为:IIO-8859-1,后台编码格式一般为:GBK或者UTF-8)
post请求的特点:
a. 请求参数添加到实体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)
b. 相对安全,但是,post请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)
————————————————
版权声明:本文为CSDN博主「只会debugger」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/java_xdo/article/details/88711192

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)

高春辉、王春生、朱峰:关于开源创业的 15 件小事

转:

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

学习目标

1、一周掌握 JAVA 入门到进阶知识
2、掌握基础 C#l 窗体知识
3、手把手教你 vbs 脚本制作
4、强大的 IDEA 编程利器
5、经典少见的 面试题目技巧


@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法

  • 学习目标
  • 前言
  • @PostMapping
  • @DeleteMapping
  • @PutMapping
  • @GetMapping
  • @RequestMapping
  • 总结


前言

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)


希望:2012 新的一年,想要的都拥有,得不到的都释怀!

@PostMapping

如图所示:
@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

增加应该使用 POST

@DeleteMapping

如图所示:
@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

删除应该使用 DELETE

@PutMapping

如图所示:
@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

修改应该使用 PUT

@GetMapping

如图所示:
@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

查询应该使用 GET

@RequestMapping

如图所示:
@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping请求的用法(推荐)

@GetMapping是一个组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写
@DeleteMapping是一个组合注解 是@RequestMapping(method = RequestMethod.DELETE)的缩写
@PutMapping是一个组合注解 是@RequestMapping(method = RequestMethod.PUT)的缩写
@PostMapping是一个组合注解 是@RequestMapping(method = RequestMethod.POST)的缩写

总结

通过上面的介绍,我们应该学会了怎么用上述的注解了。

转:

@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)


--Posted from Rpc

AJAX 对 get/post/put/delete 的支持

AJAX 对 get/post/put/delete 的支持

后端同事想采用 REST 风格,hailiang 在看 jQuery 文档时发现的 $.ajax 不是所有浏览器中都支持 put/delete。

 

 

但没有指出具体是那些浏览器。

 

我新建了一个 Java WEB 项目测试所有浏览器,但都支持 put 和 delete。测试浏览器版本如下

 

Firefox 11

Chrome 18

Safari 5

Opera 11.62

IE9 (含 ie7,8 模式)

IE6 (IETester 及虚拟机中的 ie6)

 

 

记录之!

 

 

相关:

http://www.douban.com/group/topic/5020441/

http://annevankesteren.nl/2007/10/http-method-support

http://dobrzanski.net/2007/04/22/using-put-and-delete-methods-in-ajax-requesta-with-prototypejs/

http://stackoverflow.com/questions/165779/are-the-put-delete-head-etc-methods-available-in-most-web-browsers


转载自:http://snandy.iteye.com/blog/1483186

原标题:xhrhttprequest 部分浏览器中不支持 put/delete


关于REST API-为什么使用PUT DELETE POST GET?restful get post put delete的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于@Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解、@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法(推荐)、AJAX 对 get/post/put/delete 的支持的相关知识,请在本站寻找。

本文标签: