restful

rest与restful

梦想与她 提交于 2019-12-25 15:49:23
知乎上面摘抄的,感觉不错,分享下: https://www.zhihu.com/question/28557115 1. REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口); 2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如: http:// api.qc.com/v1/newsfeed : 获取某人的新鲜; http:// api.qc.com/v1/friends : 获取某人的好友列表; http:// api.qc.com/v1/profile : 获取某人的详细信息;3. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转: GET 用来获取资源, POST 用来新建资源(也可以用于更新资源), PUT 用来更新资源, DELETE 用来删除资源。比如: DELETE http://api.qc.com/v1/ friends: 删除某人的好友 (在http parameter指定好友id) POST http://api.qc.com/v1/ friends: 添加好友 UPDATE http:// api.qc.com

Apache CXF 和 Spring 开发RESTful Web Service 2

一笑奈何 提交于 2019-12-24 20:50:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ###开发环境 Maven Eclipse Tomcat ###快速构建 archetype太少?关于如何添加本地archetype catalog: 下载文件 http://repo1.maven.org/maven2/archetype-catalog.xml 设置Eclipse 首选项 Maven Archetype ,将archetype-catalog.xml 添加为Local catalog. 使用Archetype 创建Maven项目,坐标: org.apache.cxf.archetype cxf-jaxrs-service 3.1.4 注释掉pom.xml文件中的插件配置,执行 mvn clean install 将项目发布到Tomcat服务器 我的项目名称为 my_cxf_restful 访问URL http://localhost:8080/my_cxf_restful/hello/echo/cong 网页显示结果为: cong ###项目构建步骤 ####导入依赖包 导入jackson 是因为需要处理json类型数据 cxf-rt-frontend-jaxrs 为CXF 开发RESTful WebService 必须的包,其它依赖Maven会自动处理 项目基于Spring

RESTful Webservice

心已入冬 提交于 2019-12-23 21:24:43
RESTful Webservice 1,REST和RESTFUL是什么? REST ( REpresentational State Transfer ),State Transfer 为 "状态传输" 或 "状态转移 ",Representational 中文有人翻译为"表征"、"具象",合起来就是 "表征状态传输" 或 "具象状态传输" 或 "表述性状态转移" REST是一种架构风格,REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。 REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(resource) 2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识 3.所有的操作都是无状态的 REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理。您可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。其核心操作只有GET,PUT,POST,DELETE。

RESTful 架构与 RESTful 服务

让人想犯罪 __ 提交于 2019-12-23 16:07:05
风格 ⇒ 标准 ⇒ 协议 ⇒ 实现 Representational State Transfer,是一种软件架构风格,既然是风格,就非标准或协议,而是定义了一组设计原则和约束条件。具有如下特点: 适用于客户端和服务器交互类的软件; 基于该风格设计的软件更简洁,更有层次,更易于实现缓存等机制; 在REST中,每一个对象都是通过 URL 来表示的 1. 网站即软件 网站即软件,是一种新型的软件。 作为软件的网站是一种互联网软件,采用客户端/服务器模式,建立在分布式体系上,通过互联网通信, 具有高延时(high latency,受制于带宽)、高并发的特点; 软件开发一般针对单机环境,网络则主要研究系统之间的通信; RESTful 架构的提出,使得网站越来越多地具有软件的属性,通过风格的限制和约束,也使得网站开发能够按照软件开发的方式进行开发。 2. RESTful 架构 REST,representational state transfer,表现层状态转化(还记得 OSI 7层网络模型吗,在网络层、传输层之上又细分为会话层(session layer), 表示层 (presentation layer))。 资源(resources)与资源的展现,表示层状态转移,省略了主语,表现层其实指的是资源的表示层,对资源的展示与表现; 资源(resources)就是 URI/URL 的 R;

SpringBoot & Restful API 构建示例

主宰稳场 提交于 2019-12-23 00:53:26
在现在的开发流程中,为了最大程度实现前后端的分离,通常后端接口只提供数据接口,由前端通过Ajax请求从后端获取数据并进行渲染再展示给用户。我们用的最多的方式就是后端会返回给前端一个JSON字符串,前端解析JSON字符串生成JavaScript的对象,然后再做处理。 本文就来演示一下Spring boot如何实现这种模式,本文重点会讲解如何设计一个Restful的API,并通过Spring boot来实现相关的API。 不过,为了大家更好的了解Restful风格的API,我们先设计一个传统的数据返回接口,这样大家可以对比着来理解。 一、非Restful接口的支持 我们这里以文章列表为例,实现一个返回文章列表的接口,代码如下: @Controller @RequestMapping("/article") public class ArticleController { @Autowired private ArticleService articleService; @RequestMapping("/list.json") @ResponseBody public List<Article> listArticles(String title, Integer pageSize, Integer pageNum) { if (pageSize == null) { pageSize

RESTful身份验证

故事扮演 提交于 2019-12-22 20:02:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> RESTful身份验证的含义是什么?它是如何工作的? 我无法在Google上找到一个很好的概述。 我唯一的理解是你在URL中传递会话密钥(remeberal),但这可能是非常错误的。 #1楼 我怀疑那些热心地喊“HTTP身份验证”的人是否尝试过用REST创建一个基于浏览器的应用程序(而不是机器到机器的Web服务)(没有冒犯的意图 - 我只是觉得他们没有遇到过复杂的问题) 。 我在RESTful服务上使用HTTP身份验证时发现的问题是生成可在浏览器中查看的HTML页面: 用户通常会得到一个丑陋的浏览器制作的登录框,这对用户不友好。 你不能添加密码检索,帮助框等。 以不同的名称注销或登录是一个问题 - 浏览器将继续向站点发送身份验证信息,直到您关闭窗口 超时很难 铲球这些逐点非常有见地的文章是 在这里 ,但是这导致了 很多 特定浏览器的JavaScript两轮牛车,变通办法变通办法,等等的。 因此,它也不是向前兼容的,因此在发布新浏览器时需要不断维护。 我不认为干净清晰的设计,而且我觉得这是一项额外的工作和头痛,所以我可以热情地向我的朋友展示我的REST徽章。 我相信cookie是解决方案。 但等等,饼干是邪恶的,不是吗? 不,他们不是,饼干经常使用的方式是邪恶的。 Cookie本身只是一条客户端信息

spring boot 2 全局统一返回RESTful风格数据、统一异常处理

痞子三分冷 提交于 2019-12-21 17:46:58
全局统一返回RESTful风格数据,主要是实现ResponseBodyAdvice接口的方法,对返回值在输出之前进行修改。 使用注解@RestControllerAdvice拦截异常并统一处理。 开发环境: IntelliJ IDEA 2019.2.2 jdk1.8 Spring Boot 2.2.2 1、创建一个SpringBoot项目,pom.xml引用的依赖包如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 2、定义一个返回类 package com.example.response.entity; import

Python 29 Restful规范

…衆ロ難τιáo~ 提交于 2019-12-21 02:16:10
预备知识: -- 遵循rest风格实现的前后端交互都叫RESTful架构 -- URI:统一资源标识符,相当于身份证号 -- URL:统一资源定位符,相当于姓名 RESTful规范: 一、核心思想 1、面向资源编程,url中尽量用名词而不是动词 2、根据HTTP请求方式的不同对资源进行不同操作。 二、在url中体现的规范 1、体现版本 2、体现是否是API 3、有过滤条件 4、尽量用https 三、在返回值中的规范 1、携带状态码 2、返回值:get返回查看的所有或单条数据;post返回新增的这条数据;put / patch 返回更新的这条数据;delete 返回值空 3、携带错误信息 4、携带超链接 RestFramework 使用: 1、pip install djangorestframework 2、在settings的app中注册rest_framework 一、序列化 from SerDemo import models from SerDemo.serializers import BookSerializer from rest_framework.response import Response from rest_framework.views import APIView # Create your views here. class BookView

SpringMVC简单构造restful, 并返回json

房东的猫 提交于 2019-12-20 11:55:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 文章要要点: 快速搭建构造restful的StringMvc GET, POST , PUT , DELETE的各种调用 同一资源 多种表述 ( ContentNegotiatingViewResolver 解析器),既可以返回对象给JSP, 也可以返回JSON 快速搭建构造restful的StringMvc 首现搭建一个简单的restfulMvc框架, 并上配置文件, 后期会增加带JSON返回值的配置 JAR包 web.xml配置 <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-servlet.xml</param

HttpClient调用restful方式webservice接口

我的未来我决定 提交于 2019-12-20 11:16:14
本文使用ssm框架。springmvc,spring,mybatis 配置文件 #-----REST接口----------------------------- rs_username=ad rs_password=ad rs_url=http://192.168.42.147:。。。。 rs_url2=http://192.168.42.147:。。。。 rs_url3=http\://192.168.42.147\。。。。 代码 package com.cn.cncc.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods