当前位置:网站首页>Application of restful API based on MVC
Application of restful API based on MVC
2020-11-06 20:10:00 【itread01】
`PUT/users{id}`[^ Create a resource for the client to maintain the primary key information ] | | Delete | `DELETE/users/{id}` | | modify / to update | `PUT/users/{id}` | | Look up all | `GET/users` | | Primary key query | `GET/users/{id}`
`GET/users?id=26` | | Paging scope query | `GET/users?start=0&size=10`
`GET/users?07,2019-07,2020` | You can see through this `RESTAPI` It's all through the right to == The same resource == The operation of , The difference is through different ==HTTP Method == To achieve different processing of resources . #### 2.`MVC` Yes `REST` Support for ##### 1.1 Mainly through annotations * `@Controller` Name a controller that handles requests * `@RequestMapping` Request mapping address , It has several sub annotations for implementation `REST` In terms of style, it is more == Semantic == * `@GETMapping` ==GET Ask for == * `@PUTMapping` ==PUT Ask for == * `@POSTMapping` ==POST Ask for == * `@DELETEMapping` ==DELETE Ask for == * `@ResponseBody` Convert the response content to `JSON` Format * `@RequestBody` The request content is converted to `JSON` Format * `@PathVariable("id")` Used to bind an argument * `@RESTController` Equal to `@Controller`+`@ResponseBody` This annotation is written on the class , All methods that identify this class are only == Return data ==, Instead of == View jump == ##### 1.2 return `HTTP` Status code **`REST` Style `API` One of the most distinctive features is by returning the corresponding `HTTPStatus` To determine whether the operation of the client is completed ** == Here is spring About `Http` The enumeration class described by the state code , This paper lists the common status codes ==( If readers are interested in this, they can check `HttpStatus` Source code ) ~~~java public enum HttpStatus{ OK(200, "OK"),// Used for server with physical response CREATED(201, "Created"),// A new entity has been established , Respond to the entity NO_CONTENT(204, "No Content"),// The server is responding normally , But no physical response BAD_REQUEST(400, "Bad Request"),// Client request syntax error NOT_FOUND(404, "Not Found"),// The target resource does not exist INTERNAL_SERVER_ERROR(500, "Internal Server Error"),// Server internal error NOT_IMPLEMENTED(501, "Not Implemented"),// The server does not support the current request } ~~~ Spring The status code is returned by `@ResponseStatus` Note or `ResponseEntity ` Class . ==`@ResponseStatus` The way == ~~~java @GetMapping(path = "/user/{id}" , produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.OK) public User findUserById(@PathVariable("id")Integer id){ User user = userService.findUserById(id); return user ; } ~~~ ==`ResponseEntity `== The way ~~~java @GetMapping(produces = "application/json;charset=utf-8") public ResponseEntity
-
> findAll(){ List
-
>(users , HttpStatus.OK); } ~~~ ##### 1.3 Because of `MVC` Default not supported `PUT` and `DELETE` Method , So you need to turn it on manually * stay `tomcat` Server's `web.xml` Open the configuration in the file * ~~~xml
-
> findAll(){ List
-
>(users , HttpStatus.OK); } /**、 * According to ID Inquire about * @param id * @return */ @GetMapping(path = "/{id}" , produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.OK) public User findUserById(@PathVariable("id")Integer id){ User user = userService.findUserById(id); return user ; } /** * Add a user * Return the user */ @PostMapping(produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.CREATED) public User addUser(@RequestBody User user){ User newUser = userService.addUser(user); return newUser ; } /** * to update * @param user */ @PutMapping(path = "/{id}" ,produces = "application/json;charset=utf-8") public ResponseEntity
版权声明
本文为[itread01]所创,转载请带上原文链接,感谢
边栏推荐
- Who says cat can't do link tracking? Stand up for me
- 使用 Iceberg on Kubernetes 打造新一代雲原生資料湖
- Python download module to accelerate the implementation of recording
- Advanced Vue component pattern (3)
- Details of dapr implementing distributed stateful service
- 快速排序为什么这么快?
- What are PLC Analog input and digital input
- If PPT is drawn like this, can the defense of work report be passed?
- 只有1个字节的文件实际占用多少磁盘空间
- use Asponse.Words Working with word templates
猜你喜欢
Interface pressure test: installation, use and instruction of siege pressure test
Wow, elasticsearch multi field weight sorting can play like this
Music generation through deep neural network
StickEngine-架构12-通信协议
游戏主题音乐对游戏的作用
The dynamic thread pool in Kitty supports Nacos and Apollo multi configuration centers
What are the common problems of DTU connection
【转发】查看lua中userdata的方法
有了这个神器,快速告别垃圾短信邮件
It's time for your financial report to change to a more advanced style -- financial analysis cockpit
随机推荐
仅用六种字符来完成Hello World,你能做到吗?
Even liver three all night, jvm77 high frequency interview questions detailed analysis, this?
Electron application uses electronic builder and electronic updater to realize automatic update
Multi classification of unbalanced text using AWS sagemaker blazingtext
What are Devops
零基础打造一款属于自己的网页搜索引擎
Basic principle and application of iptables
Wechat applet: prevent multiple click jump (function throttling)
一篇文章带你了解CSS 渐变知识
Behind the first lane level navigation in the industry
GUI engine evaluation index
視覺滾動[反差美]
What are the criteria for selecting a cluster server?
[Xinge education] poor learning host computer series -- building step 7 Simulation Environment
What to do if you are squeezed by old programmers? I don't want to quit
Lane change detection
Who says cat can't do link tracking? Stand up for me
小游戏云开发入门
What course of artificial intelligence? Will it replace human work?
新建一个空文件占用多少磁盘空间?