restful

REST,以及RESTful的讲解

心已入冬 提交于 2020-01-16 20:05:49
1.传统下的API接口 http是目前在互联网上使用最多的协议,没有之一。   可是http的创始人一直都觉得,在过去10几年来,所有的人都在错误的使用Http.这句话怎么说呢?   如果说你要删除一个数据,以往的做法通常是 delete/{id}    如果你要更新一个数据,可能是Post数据放Body,然后方法是 update/{id}, 或者是artichle/{id}?method=update     这种做法让Roy Fielding很暴燥,他觉得这个世界不该这样的,所有的人都在误解而且在严重错误的误解Http的设计初衷,好比是发明了火药却只用它来做烟花爆竹。    那么正确的使用方式是什么呢?如果你要看Rest各种特性,你恐怕真的很难理解Rest,但是如果你看错误的使用http的人倒底儿了哪些错,什么是Rest就特别容易理解了。 来源: CSDN 作者: John0220 链接: https://blog.csdn.net/baobei0220/article/details/104006974

SpringMVC中RestFul风格

落花浮王杯 提交于 2020-01-15 20:09:39
先说一下什么是RestFul风格,以一个链接为例子,如果我们访问一个网页,想要给a和b传参数,传统的方式是?a=1&b=2,而RestFul就是改变了传统的方式,用/a/1/2的形式,达到了简洁、安全、高效(支持缓存)。 这里我们以一个简单的SpringMVC例子来进行演示,首先我们写一个 Controller控制器(核心) package com.zhiying.controller4; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ControllerTest4 { @RequestMapping("/add/{a}/{b}") public String test1(@PathVariable int a, @PathVariable int b, Model model) { int result = a + b; model.addAttribute(

【WCF Restful】Post传参示范

与世无争的帅哥 提交于 2020-01-15 15:36:48
1、传多个参数 接口定义:(ResponseFormat与RequestFormat分别将相应参数序列化、请求参数反序列化) [OperationContract] [WebInvoke(UriTemplate = "api/fun2", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] string TestFun2(string p1,string p2); 实现: public string TestFun2(string p1, string p2) { return p1+p2; } 调用: private void button1_Click(object sender, EventArgs e) { try { string sUrl3 = "http://localhost:10086/api/fun2"; string sBody2 = JsonConvert.SerializeObject(new { p1 = "1", p2 = "2" }); HttpHelper.HttpPost(sUrl3, sBody2); } catch

RESTful源码笔记之RESTful Framework的基本组件

喜夏-厌秋 提交于 2020-01-15 00:28:45
快速实例 Quickstart 序列化 创建一个序列化类 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如 json 之类的表示形式的方式。我们可以通过声明与Django forms非常相似的序列化器(serializers)来实现。 models部分: from django.db import models # Create your models here. class Book(models.Model): title=models.CharField(max_length=32) price=models.IntegerField() pub_date=models.DateField() publish=models.ForeignKey("Publish") authors=models.ManyToManyField("Author") def __str__(self): return self.title class Publish(models.Model): name=models.CharField(max_length=32) email=models.EmailField() def __str__(self): return self.name class Author(models

laravel restful 接口风格使用

馋奶兔 提交于 2020-01-14 18:57:46
创建restful控制器: php artisan make:controller 控制器名称 --resource 创建普通控制器可以去掉 --resource 打开routes/api.php 配置路由如下: Route::get('restfuls', 'Api\RestfulController@index');//列表 Route::get('restfuls/{id}', 'Api\RestfulController@show');//获取单条 Route::post('restfuls', 'Api\RestfulController@create');//录入 Route::put('restfuls/{id}', 'Api\RestfulController@update');//修改 Route::delete('restfuls/{id}', 'Api\RestfulController@delete');//删除 当请求接口时,不存在的路由将会抛出404,可以通过app/exceptions/Handler.php下进行重新定义 public function render($request, Exception $exception) { return response()->json([ 'error' => '404' ], 404); //

restful api接口代码实例

白昼怎懂夜的黑 提交于 2020-01-14 17:50:04
class Request { //允许的请求方式 private static $method_type = array(‘get’, ‘post’, ‘put’, ‘patch’, ‘delete’); //测试数据 private static $test_class = array( 1 => array(‘name’ => ‘托福班’, ‘count’ => 18), 2 => array(‘name’ => ‘雅思班’, ‘count’ => 20), ); public static function getRequest() { //请求方式 m e t h o d = s t r t o l o w e r ( method = strtolower( m e t h o d = s t r t o l o w e r ( _SERVER[‘REQUEST_METHOD’]); if (in_array( m e t h o d , s e l f : : method, self:: m e t h o d , s e l f : : method_type)) { //调用请求方式对应的方法 $data_name = m e t h o d . ‘ D a t a ’ ; r e t u r n s e l f : : method . ‘Data’;

对restful的理解

吃可爱长大的小学妹 提交于 2020-01-13 05:08:43
理解restful之前先来了解一下rest. REST(英文:Representational State Transfer,简称 REST,意思是:(资源)表述性状态转化)描述了一个架构样式的网络系统, 比如 web 应用程序。 它是一种软件架构风格、设计风格,而不是标准,只是 提供了一组设计原则和约束条件 。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 它本身并没有什么实用性,其核心价值在于如何设计出符合 REST 风格的网络接口。 restful就是rest的一种实现: 主要特征有以下三个: 资源(Resources): 网络上的一个实体,或者说是网络上的一个具体信息。(简单来说,就是肯定是名词) 表现层(Representation): 把资源具体呈现出来的形式,叫做它的表现层 (Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。(对应http请求头:Acceppt,Content-Type) 状态转化(State Transfer): 以不同的http method来标示你要进行什么类型的操作(get-查询,post-新增, put-更新,delete-删除) 我觉得post和put的最大区别是

用python写一个restful API

人走茶凉 提交于 2020-01-11 00:46:08
# -*- coding: utf-8 -*- # 作者: 煮酒品茶 """ package.module ~~~~~~~~~~~~~~ python实现的图书的一个restful api. 参考restful设计指南 URL: http://www.ruanyifeng.com/blog/2014/05/restful_api.html restful api 一般模式: GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。 注意: 没有做存储持久化,为了实现例子,实际上应该是从数据库里面拿,而增册改查方法也应该调用 后端的方法。 :copyright: (c) YEAR by zwhset. :license: GOMEOPS, see LICENSE_FILE for more details. """ from flask import Flask, request, jsonify import random app = Flask(__name__) books = [ dict(id=1, isdn=random

SpringMVC学习笔记(三)

我的未来我决定 提交于 2020-01-10 04:13:15
SpringMVC RESTful风格 RESTful风格简述 RESTful的核心内容 RESTful架构特点 SpringMVC下使用RESTful风格进行开发 处理PUT和DELETE请求 源码 RESTful风格简述 REST:Representational State Transfer(表述性状态转移),他不是一种创新技术,他指的是一组架构约束条件和原则,若一个架构符合REST的约束条件和原则架构,那么他就称为RESTful架构。 RESTful的核心内容 表述性状态转移,所谓的表述指的是 资源 的表述,资源就是真实存在的资源(图片、文本、视频、音频等)可以被调用的资源,若要使得该资源被调用那么就需要有唯一标示即 URI 。状态的转移指的是资源在客户端发生变迁,进入后续的状态,通俗来说就是用户改变资源后,服务器需要进行相应的变动操作。 RESTful架构特点 统一了客户端访问资源的接口,无论后台什么样的资源都是通过相同的接口进行访问 url更加简洁,易于理解,便于拓展 有利于不同系统间的资源共享(依托于第一点的统一接口) 我们知道HTTP协议的有两种基本形式有:GET、POST。 RESTful具体来讲就是HTTP协议的四种形式表示四种基本操作,所对应的操作如下: GET:获取资源 POST:新建资源 PUT:修改资源(POST) DELETE:删除资源 (POST)

Java面试之RESTful风格接口

泄露秘密 提交于 2020-01-09 23:35:01
1.Restful风格接口简介: 答:Restful这个词,是一个外国人Roy Thomas Fielding在2000年提出的。这个Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。这个词组翻译为就是“表现层状态转换”。表现层指定就是资源,如果一个架构符合REST原则,则称它为RESTful架构。这只是一种软件架构风格,而并不是标准,只是提供了一个设计原则和约束条件。主要适用于客户端和服务器端交互的软件,是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单,更有层次,更易于实现缓存的机制。 在restful风格中,用户请求的url使用同一个url而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口 2.什么是RESTful架构 答:1.每一个URI代表一种资源 2.客户端和服务器之间,传递这种资源的某种表现层 3.客户端通过四个HTTP动词,对服务器端资源进行操作,实现“表现层状态转换” 3.请求方式介 绍 答:在http协议中,四个表示操作方式的动词:GET/POST/PUT/DELETE。 GET