本文将带您了解关于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)
- @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的一些文章。其中一些建议使用所有类型的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-RPC , JSON-RPC , SOAP 和 REST的知识之后,
我得出了这样的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使用GET
,PUT
,POST
和DELETE
为请求。
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
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详解
最近写项目中突然发现有人再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 请求的用法(推荐)
学习目标
1、一周掌握 JAVA 入门到进阶知识
2、掌握基础 C#l 窗体知识
3、手把手教你 vbs 脚本制作
4、强大的 IDEA 编程利器
5、经典少见的 面试题目技巧
@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping 请求的用法
- 学习目标
- 前言
- @PostMapping
- @DeleteMapping
- @PutMapping
- @GetMapping
- @RequestMapping
- 总结
前言
希望:2012 新的一年,想要的都拥有,得不到的都释怀!
@PostMapping
如图所示:
增加应该使用 POST
@DeleteMapping
如图所示:
删除应该使用 DELETE
@PutMapping
如图所示:
修改应该使用 PUT
@GetMapping
如图所示:
查询应该使用 GET
@RequestMapping
如图所示:
@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 的支持
后端同事想采用 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 的支持的相关知识,请在本站寻找。
本文标签: