RESTful 不是新东西,简单理解它的核心思想就是最大程度的利用http协议的一些特点,比如uri,比如请求动词,在前后端分离的项目中会有大大的好处

好的设计的url简单明了,胜过详细的说明文档。关于介绍Restful的好文章也有很多  http://www.ruanyifeng.com/blog/2014/05/restful_api.html

看几个不错的restful风格的url设计,你就明白什么时restful风格了

1,豆瓣电影

https://movie.douban.com/subject/27179414/?from=showing

编号27179414的项目

编号27179414 电影的演员表  https://movie.douban.com/subject/27179414/celebrities

 

是不是很明了,一看url就知道他的内容

下面是在asp.net mvc中实践restful 的一点总结 ,项目没有使用webapi 

首先,IIS默认是禁止Delete,Put等请求的,如果没有事先配置的话会报404

解决办法一:在web.config中标注module节点  <modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true">

方法二:如果上述方法还是不奏效的话

可以直接在控制面板》》程序或功能》》启用或关闭Windows功能中关闭除WebDev模块

在这里,取消【WebDAV发布】的勾选就行,

启用是路由特性, 使用restful时有时候会自定义一些路由映射, 在RouteConfig中加入  routes.MapMvcAttributeRoutes();

关于路由特性也有一些很详细的文章  https://www.cnblogs.com/zeusro/p/RouteConfig.html

在URL中添加版本号

1 url中要有版本号  比如     https://api.demo.com/v1/controller/action  ,   也就是说要设置全局的路由

方法一, 添加区域, 

方法二, 在IIS添加应用程序

在IIS里面添加网站的时候,不直接添加,二十添加一个空文件夹,然后再在里面添加应用程序

方法三,定义全局路由

定义全局路由, 这篇文章有介绍  https://www.cnblogs.com/savorboard/p/dontnet-IApplicationModelConvention.html

 使用http动词来表明来意

分别使用来对应增删改查, url使用小写 ,尽量使用名字而不是动宾短语 比如   获取商品的url    /products  要好于 /product/getproduct

 

post (新增)

put (修改)

delete(删除)

get(查询)

添加一个商品   /product    post动词

编辑商品   /product    put动词

删除商品   /product    delete动词

获取商品列表 /products?page=1&pagesize=50   get动词

获取 ID为1的商品ID为3图片   /product/1/img/3  get动词

设置Id为1的商品价格为2    /product/1/setprice/2  post动词

 restful缺点很多,在实际使用过程中其实很难做到完全遵循,这个时候千万不能生搬硬套,他并不是一个硬性的规定,只是一种风格,不用restful或者不严格使用都是完全没有问题的

Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计的更多相关文章

  1. Aspnet Mvc 前后端分离项目手记(二)关于token认证

    在前后端分离的项目中,首先我们要解决的问题就是身份认证 以往的时候,我们使用cookie+session,或者只用cookie来保持会话. 一,先来复习一下cookie和session 首先我们来复习 ...

  2. Aspnet Mvc 前后端分离项目手记(一) 关于跨域问题(还有前言)

    前言,最近的项目使用前后端分离的模式,记录其中一些知识点.经过这个项目,也对前后端分离有了更多理解,尤其是在技术之外的方面. 越来越多的项目采用前后端分离的原因,有两点:      1,技术方面的原因 ...

  3. Aspnet Mvc 前后端分离项目手记(四)vue项目的搭建(一)(iview)

    一项目创建 1,搭建vue-cli脚手架(依赖npm) 没有安装npm的同学,请先使用npm install -g vue-cli ,然后再进行这一步 安装的过程中有几项 ? Project name ...

  4. 从零开始搭建django前后端分离项目 系列三(实战之异步任务执行)

    前面已经将项目环境搭建好了,下面进入实战环节.这里挑选项目中涉及到的几个重要的功能模块进行讲解. celery执行异步任务和任务管理 Celery 是一个专注于实时处理和任务调度的分布式任务队列.由于 ...

  5. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  6. Yii框架和Vue的完美结合完成前后端分离项目

    背景说明 本文假设你对Yii和Vue都比较熟悉,至少都在项目里用过,另外笔者新人,以后不定时放一些干货,欢迎程序媛关注 Yii是一个PHP全端框架,典型的mvc的项目结构,后端接口都是一个控制器里放了 ...

  7. 基于Vue的前后端分离项目实践

    一.为什么需要前后端分离 1.1什么是前后端分离  前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...

  8. 《Spring Boot 入门及前后端分离项目实践》系列介绍

    课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...

  9. 超简单!asp.net core前后端分离项目使用gitlab-ci持续集成到IIS

    现在好多使用gitlab-ci的持续集成的教程,大部分都是发布到linux系统上的,但是目前还是有很大一部分企业使用的都是windows系统使用IIS在部署.NET应用程序.这里写一下如何使用gitl ...

随机推荐

  1. Magento2 Service contracts 服务合同

    服务合同 Magento是一个模块化系统,它使第三方开发人员能够定制和覆盖其框架的核心部分.然而,这种灵活性是有代价的. 业务逻辑倾向于泄漏Magento系统的各个层,这表现为重复且不一致的代码. 商 ...

  2. MT【318】分式不等式双代换

    已知$a,b>0$且$\dfrac{1}{a}+\dfrac{1}{b}=\dfrac{2}{3}$,求$\dfrac{1}{a-1}+\dfrac{4}{b-1}$的最小值. 解:令$m=\d ...

  3. BZOJ3784树上的路径

    题目描述 给定一个N个结点的树,结点用正整数1..N编号.每条边有一个正整数权值.用d(a,b)表示从结点a到结点b路边上经过边的权值.其中要求a<b.将这n*(n-1)/2个距离从大到小排序, ...

  4. BSGS+exBSGS POJ2417+POJ3243

    a^x=b(mod p)求x,利用分块的思想根号p的复杂度求答案,枚举同余式两端的变量,用hash的方法去找最小的答案(PS:hash看上去很像链式前向星就很有好感).然后如果p不是质数时,就利用同余 ...

  5. 集合的遍历以及在Spring中的注入

    (一)遍历 list:foreach循环 set:foreach循环 map:先用set集合得到所有key值,然后循环key得到所有vale Map<String,String> map ...

  6. 驱动调试(四)oops确定调用树

    目录 驱动调试(四)oops确定调用树 内核开启调用树 栈指针分析 原理 寄存器别名 基础解释 例子分析 找到PC地址的位置 栈分析 附录:原文的excel title: 驱动调试(四)oops确定调 ...

  7. Go语言系列(八)- Goroute和Channel

    一.Goroute 1. 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配合调度的一个独立单位 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能 ...

  8. pip换源安装

    pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple 要安装的 有些工具安装太慢, 换源安装一下, 速度一下子飞起

  9. 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)

    一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...

  10. SpringBoot系列: url重定向和转发

    Web UI项目中, 很多 Spring controller 视图函数直接返回 html 页面, 还有一些视图函数是要重定向或转发到其他的 url 上. redirect 和 forward的区别: ...