RESTful接口开发
package com.aaaaaa.manager.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import com.aaaaaa.manager.pojo.Item;
import com.aaaaaa.manager.service.ItemService; @Controller
@RequestMapping("item/interface")
public class ItemInterfaceController {
// http://127.0.0.1/query/1?rows=2
// @RequestParam:获取请求参数的数据(包括表单提交的数据),就是获取rows=2 的2
// @PathVariable:获取请求url路径上的数据,就是1 @Autowired
private ItemService itemService; // 根据id查询 GET
// http://manager.aaaaaa.com/rest/item/interface/{id}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "{id}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Item> queryItemById(@PathVariable Long id) {
try {
Item item = this.itemService.queryById(id);
// 查询成功,返回200
// return ResponseEntity.status(HttpStatus.OK).body(item);
// return ResponseEntity.ok().body(item);
return ResponseEntity.ok(item);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 如果服务器出错,返回500
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
} // 新增 POST
// http://manager.aaaaaa.com/rest/item/interface
/**
* 新增
*
* @param item
* @return
*/
@RequestMapping(method = RequestMethod.POST)
// @ResponseBody:不加这个注解就会走视图解析器,返回页面,加这个注解就走转换器,返回数据
// 加上@ResponseBody注解和返回ResponseEntity效果是一样的,都会走转换器,返回数据,所以使用任意一个即可,两个都用也没问题
public ResponseEntity<Void> saveItem(Item item) {
try {
this.itemService.save(item);
// 新增成功,返回201
return ResponseEntity.status(HttpStatus.CREATED).build();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 如果服务器出错,返回500
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
} // 更新 PUT
// http://manager.aaaaaa.com/rest/item/interface
/**
* 更新
*
* @param item
* @return
*/
@RequestMapping(method = RequestMethod.PUT)
public ResponseEntity<Void> updateItem(Item item) {
try {
this.itemService.updateByIdSelective(item);
// 修改成功,返回204
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 如果服务器出错,返回500
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
} // 根据id删除 DELETE
// http://manager.aaaaaa.com/rest/item/interface/{id}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "{id}", method = RequestMethod.DELETE)
public ResponseEntity<Void> deleteItemById(@PathVariable Long id) {
try {
this.itemService.deleteById(id);
// 删除成功,返回204
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 如果服务器出错,返回500
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
} }
RESTful接口开发的更多相关文章
- python测试开发django-rest-framework-59.restful接口开发
前言 REST 不是什么具体的软件或者代码,而是一种思想.现在流行前后端分离开发项目,一般用 json 来交换数据. 相信写过模板的同学都知道,只要哪怕页面中的数据有一丝丝变动,那整个页面都需要重新渲 ...
- RESTful接口开发规范
最近在研究restful,公司开发要使用,所以自己就去网上找了好些资料,并整理了一套公司开发的接口规范.当然,我也只是刚刚入坑.还不是很全面.但是这就是一个过程.一点点,总会好起来的.以下是就是RES ...
- Restful 接口开发 完整版
准备: springboot ssm框架 项目结构:注意 Swagger2Config要和springboot的启动类放在同一级 //pom所需的依赖 <dependency> <g ...
- python 全栈开发,Day100(restful 接口,DRF组件,DRF跨域(cors组件))
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确.方便快速开发 - 针对pc,手机,ipad,微信,支付宝... 使用同一个接口 2. 简述http协议? - 基 ...
- SpringMVC开发RESTful接口
概念: 什么是REST? REST是Representational State Transfer的缩写.翻译为"表现层状态转化",restful是一种接口设计风格,它不是一个协议 ...
- 接口开发-restful
数据库表设计 1 --员工表 2 create table Employee 3 ( 4 id NUMBER primary key, 5 employeeID NUMBER not null, 6 ...
- API接口开发 配置、实现、测试
Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到 ...
- RESTful接口设计原则和优点
RESTful架构优点: 前后端分离,减少流量 安全问题集中在接口上,由于接受json格式,防止了注入型等安全问题 前端无关化,后端只负责数据处理,前端表现方式可以是任何前端语言(android,io ...
- Swagger文档化restful接口
1.注解 @Api:用在类上,说明该类的作用. @ApiOperation:注解来给API增加方法说明. @ApiImplicitParams : 用在方法上包含一组参数说明. @ApiImplici ...
随机推荐
- 解决问题:OSError: mysql_config not found
通过pip install mysqlclient时报出了OSError: mysql_config not found错误,如下 Traceback (most recent call last): ...
- CV1——学习笔记
计算机视觉(computer vision)是从图像和视频中提出数值或符号信息的计算系统,更形象一点说,计算机视觉是让计算机具备像人类一样的眼睛,看到图像,并理解图像. 计算机视觉三大应用:识别.检测 ...
- OpenNebula概述
OpenNebula概述 OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen.KVM.VMware等虚拟化软件一起打造企业云.利用OpenNebula可以轻松构建私有云.混合云.公开 ...
- VCTravel
#pragma once #include <osgViewer/Viewer> #include <osgViewer/ViewerEventHandlers> #inclu ...
- CentOS7下搭建zabbix监控(四)——Zabbix报警设置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...
- Tips for Conda
管理环境 创建环境 基于 python3.6 创建一个名为test_py3的环境 conda create -n test_py3 python=3.6 基于 python2.7 创建一个名为test ...
- (十八)Centos之firewall 防火墙命令
如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start firewalld.service ...
- shell脚本安装python、pip--交互式的
首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, [root@bogon ~]# cat pi ...
- MySQL从.ibd文件中恢复数据
首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +- ...
- 【Leetcode_easy】709. To Lower Case
problem 709. To Lower Case solution1: class Solution { public: string toLowerCase(string str) { stri ...