0 0

Web接口设计-URL风格讨论5

    最近在想一个问题,大家在做Web服务接口设计的时候,一般对访问URL如何设计? 为什么要这样设计?

    

    先说下我的设计原则

 

    我一般设计的时候,会将所有的访问统一一个URL,然后通过一个命令标识符来识别所请求的服务,请求格式全部是JSON,

 

    这样设计的好处,1)可以有统一的行为处理   2)容易进行权限管理   3)对外API URL唯一,易于管理   

 

    但是,现在流行Rest风格的设计,但是总感觉Rest风格在URL比较适于基于Web网站的URL风格,但是对于基于接口调用的Web

 

    应用来说,一个服务一个URL不太适合,对外提供接口时一堆URL丢出去,不好控制,感觉也很奇怪,请问大家如何看待,期待讨论?

2014年7月10日 17:46

6个答案 按时间排序 按投票排序

0 0

不明白你的统一url神马意思。
url就是一个字符串,你能玩出神马花样呢?
你不是在url/model/operate/params,
就是在json里设置action了。

2014年7月17日 22:54
0 0

举个例子 比如 商品
URL:
/goods
如果是要增加商品 就用
POST /goods
显示商品(第一页) 用
GET /goods/list
第二页用
GET /goods/list/$<\d+>

显示特定商品:
GET /goods/$<\d{10}> id为10位

更新商品
UPDATE /goods/$<\d{10}> id为10位

删除商品
DELETE /goods/$<\d{10}>

合理用好 GET POST DELETE UPDATE这几个方法也挺好的

2014年7月12日 13:47
0 0

我的原则是
/项目名/模块名/资源名/参数/参数/...

2014年7月11日 17:24
0 0

呵呵, 目前项目也是这么做的, 前端ui和后端开发完全分离开来, 脱离平台, 定义好统一接口文档, 后端只负责提供json数据[fastjson提供],  前端jquyer+template,完美结合。

类似restful风格的, 完美提供给内部后台系统和移动app调用。

不过现在完整restful还是有点远的。

2014年7月10日 20:55
0 0

我比较赞成楼主的建议,但是一般情况下不同的功能模块要拆分成不同的URL,便于功能模块的区分,设计出的URL更清晰

2014年7月10日 18:03
0 1

web url要对搜索引擎的胃口,至于接口,也不至于说可以太随意吧,参见秘鲁玛卡

2014年7月11日 10:58

相关推荐

    diving-into-Asp-Net-webapi

    REST(Representational State Transfer)是一种设计风格,它提供了一组架构约束,主要用于Web服务的设计。RESTful服务通过HTTP协议的不同方法(如GET、POST、PUT、DELETE)来管理资源。Web API 作为.NET框架的一...

    Agile Web Development with Rails (4th edition).pdf

    - **RESTful设计**:介绍如何利用RESTful架构风格设计Web服务,以实现资源的统一管理和操作。 - **API开发**:探讨如何构建可重用性强、易于维护的API接口。 - **性能优化**:涵盖了缓存机制、数据库查询优化等多种...

    Expert ASP.NET Web API 2 for MVC Developers.pdf

    - OWIN是开放Web接口规范,提供了一种标准的方式来托管和配置Web应用。 - 支持多种Web服务器和中间件。 - 使得Web API更加灵活和易于部署。 8. **依赖注入** - 依赖注入是一种设计模式,用于管理类之间的依赖...

    C# WebApi Download.zip

    3. **实现下载逻辑**:使用`HttpClient`类发起HTTP请求到WebApi接口,获取文件流或URL。 - 对于`DownloadFile`,可以使用`HttpClient.GetStreamAsync`,然后将流写入本地文件。 - 对于`DownloadFileUrl`,可以先...

    本科毕业设计-课程资源系统-前端.zip

    【本科毕业设计-课程资源系统-前端.zip】这个压缩包包含了一个名为"crs-view-web-master"的项目,这是一个用于本科毕业设计或课程设计的前端项目。该项目利用了现代前端技术,特别是Vue.js框架,为用户提供一个交互...

    CursoWebServices:Curso Java Web服务JAX-WS JAX-RS

    接着,我们讨论Java API for RESTful Web Services (JAX-RS)。与JAX-WS不同,JAX-RS遵循REST(Representational State Transfer)架构风格,它主要用于构建简洁、无状态、基于HTTP协议的Web服务。通过使用JAX-RS,...

    resflu 风格接口demo

    "resflu 风格接口"可能是指一种特定的设计风格或规范,用于增强接口的可读性和可维护性。在这个场景下,我们讨论的是一个基于Django框架实现的接口DEMO。Django是一款功能强大的Python Web框架,它支持快速开发、...

    web2py中文文档

    - **API**:概述web2py提供的API接口及其用途。 - **请求、响应和会话对象**:分别介绍这三个核心对象的功能和使用方法。 - **缓存**:说明web2py中的缓存机制及其优化效果。 - **URL统一资源定位器**:解释URL的...

    spring-boot-web-service-tutorial

    接下来,我们将讨论RESTful Web服务的设计原则。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,强调无状态、客户端-服务器架构和统一接口。Spring Boot通过`@...

    使用 Spring-WS 完成的 Web Service (SOAP)

    Spring-WS 是一个基于 Java 的开源框架,专为创建 SOAP(简单对象访问协议)Web 服务而设计。它提供了一种模型-视图-控制器(MVC)的架构风格来开发 Web 服务,使得开发过程更为简洁且易于维护。本篇文章将深入探讨...

    RESTful_Web_Services中文版.pdf

    ROA强调资源的可寻址性、表示的多样性、链接的使用以及统一的接口设计,这使得Web服务可以像Web本身一样,具备高可用性和可维护性。 ### REST vs RPC 与传统的RPC(Remote Procedure Call)相比,REST式设计更为...

    websevercis发布的例子

    下面将详细讨论Web服务器的基本概念、其工作原理,以及与Web服务相关的技术。 1. Web服务器基本概念: - Web服务器是一种软件,如Apache、Nginx、IIS等,它们接收HTTP请求并返回HTTP响应,通常以HTML、CSS、...

    RESTful Java Web Services (2009).pdf

    - **REST(Representational State Transfer)**:一种网络应用程序的设计风格和开发方式,基于约束条件和原则,利用HTTP协议来实现客户端与服务器之间的交互。 - **核心特点**: - 无状态:每次请求都包含理解该...

    web service

    SOA是一种设计原则,提倡将业务功能分解为独立的服务,这些服务可以通过Web服务接口进行交互。这样,服务可以被复用,提高系统的灵活性和可扩展性。 总的来说,Web服务是现代软件系统中不可或缺的部分,它们促进了...

    ASP.NET_MVC_4_and_the_Web_API_-_Building_a_REST_Service_from_Start_to_Finish.pdf

    第三章讨论了一个具体的 REST API 设计案例。设计 REST API 需要考虑以下几个关键因素: - **资源定义**:明确服务提供的核心资源及其表示形式。 - **HTTP 方法映射**:合理分配 HTTP 方法(GET、POST、PUT、DELETE...

    Building a RESTful Web Service with Spring

    REST(Representational State Transfer)是一种用于设计网络应用程序的架构风格,其核心原则包括: - **统一接口**:这是REST最重要的约束条件之一,它简化了体系结构,使得客户端能够理解如何与服务器交互。 - **...

    webAPI第六天.7z

    Web API是应用程序编程接口(Application Programming Interface)的一种,特别是在Web开发中,它允许开发者通过HTTP协议与服务器进行交互,获取或发送数据。Web API通常用于构建分布式系统,使得客户端(如网页、...

Global site tag (gtag.js) - Google Analytics