1、首先得考虑版本的设置,以便后续版本升级:
CREATIVE_URL="http://www.test.com/api/v1/creative/update"
使用post请求。
2、为用户调用提供唯一SALE验证:
SALT = "43545hhd11778916117435e49b1c31"
3、对SALT+body内容加密安全验证
sig = Digest::SHA1.hexdigest(SALT+"#{http_body_data.to_json}")
4、加上时间请求超时验证
The unix timestamp of current time;例如:确保服务器所在地时间和服务请求所在时间差值不大于10
5、添加每次请求唯一性验证
每次post请求时要求传送一个唯一随机字段。
等等。。。。
另外引用一下api设置原则:
API 的设计原则:转载
1. 用户导向的API(Application Programming Interface) 设计
API设计和UI设计实际上是一回事情,只是不同的用户对象而已。实际上他们做的是同一件事情,都是告诉机器,你应该给我做什么事情。API永远不是为自己设计的,设计API的时候,首先应该考虑的问题是,我这个API是给谁做?他们的背景是什么?他们会怎么用?要根据他们不同的需求去设计,要想清楚你究竟是为谁在做。
2. 封装(Encapsulation), 困难留给自己,方便留给用户
API是为了解决一个或一类问题,或提供一个或一类服务。其背后一定有一个或多个实现。设计API必须保证问题得到正确解决,服务得到合适提供。不能因为实现的困难,而改变API的设计,让使用者来承担困难,解决困难。困难解决得越多,API的价值越大。一个好的API,就是要把困难留给自己,方便留给用户。就是要让客户用起来方便,不需要再去解决这些问题,这是API最大的价值。
3. 简单懂易, self explain
好的API是简单易用的,好的API时不宜让用户犯错的。每个名字,每个签名都要做到简单易懂,不能模棱两可,更不能挂羊头卖狗肉。每个名字和签名不要用缩写,即使这些缩写是我们熟悉的行业标准,要想到可能用户并不熟悉我们的行业,新员工也会有学习成本,而我们仅仅是少打几个字而已。从小处做起。
4. 不可枚举,必须抽象
API是为了解决一个或一类问题,或提供一个或一类服务。对于同一类问题,不同的应用,不同的客户需求会有不同,问题的表现也可能不同。API不能因为这些不同,来枚举这些不同,一一解决,这是永远加不完的。 必需看到问题的本质,抽象解决,统一解决。
5. 服务分类, 各司其职,包得愈紧愈好,知道愈少愈好
形象的讲,在家里,该放到厨房的东西,放到厨房;该放到卧房的东西,放到卧房;该放到客厅的东西,放到客厅。在家里,你不会把这些东西混着乱放吧。那么,也不要把一个API变成了一个大杂烩。
分享到:
相关推荐
今天我们将深入探讨一个名为`edx_rest_api_client`的Python库,该库的版本为5.0.1,它是一个专门为Python环境设计的REST API客户端,用于与edX在线学习平台进行交互。 `edx_rest_api_client`是Python开发者在处理...
1. **RESTful架构**:REST API遵循RESTful设计原则,它是一种网络应用程序的设计风格和开发方式,基于HTTP协议,使用URI(Uniform Resource Identifier)来定位资源,通过HTTP方法(GET、POST、PUT、DELETE等)来...
**百度语音合成就绪API(REST API)手册** 在当今数字化时代,语音合成技术已经广泛应用于各种场景,如智能助手、在线教育、自动驾驶等。百度作为中国领先的科技公司,提供了强大的语音合成服务,名为“百度语音...
REST API是基于REST架构约束设计的一种网络应用程序接口,它的主要特点包括资源导向、无状态、缓存等。在WordPress中,REST API提供了丰富的端点(endpoints),如文章、评论、用户、分类等,使得开发者可以轻松地...
REST API 安全设计指南。REST的全称是REpresentational State Transfer,它利用传统Web特点,提出 提出一个既适于客户端应用又...是一个REST API安全设计的指南,权当抛砖引玉,推荐网站后台设计及网站架构师们阅读。
HTTP-API_restAPI_iot_httpapi_iiot_agneyaslabs_ 这个主题涉及的是使用HTTP RESTful API来与Avarana IoT平台交互的技术细节,该平台由Agneyas Labs开发。REST(Representational State Transfer)是一种网络应用...
在这个背景下,“FinTech1-Rest-API_restapi_django_”项目显然是一个利用Django框架构建的RESTful API,用于处理金融科技相关的业务逻辑。REST(Representational State Transfer)是一种网络应用程序的设计风格和...
【nav_rest_api】是一个专为自动驾驶车辆设计的ROS(Robot Operating System)RESTful API,它提供了通过JavaScript语言来实现对车辆的远程控制和状态查询的能力。REST(Representational State Transfer)是一种...
RESTful API设计是一种广泛应用于Web服务接口的标准,它基于HTTP协议,强调资源的表述状态转移。在"REST_API_LOGIN"这个主题中,我们主要探讨如何使用JavaScript来实现REST API的登录功能。 首先,理解REST的基本...
第三章讨论了一个具体的 REST API 设计案例。设计 REST API 需要考虑以下几个关键因素: - **资源定义**:明确服务提供的核心资源及其表示形式。 - **HTTP 方法映射**:合理分配 HTTP 方法(GET、POST、PUT、DELETE...
在IT行业中,"Soget REST API服务器"可能是一个基于RESTful架构设计的Web服务,主要用于提供与Soget相关的业务功能。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议...
- **认证**:库支持OAuth 2.0认证,确保安全地访问UltraCart API。 - **错误处理**:对API响应的错误进行了封装,方便开发者处理异常情况。 - **异步支持**:部分API调用可以异步执行,提高程序性能。 - **数据模型*...
Jersey是Java平台上的一个开源框架,专门用于实现RESTful API,它提供了全面的工具和支持,使得开发者能够快速构建高效、灵活的REST服务。 在RESTful API的设计中,有以下几个关键知识点: 1. **URI(统一资源...
5. **认证与授权**:学习使用Django REST framework的认证和权限管理机制,如Token Authentication、Session Authentication等,确保API的安全性。 6. **序列化器**:掌握如何自定义序列化器以控制数据的序列化和反...
H3C CAS的REST API设计简洁,易于理解和使用,使得开发者可以使用常见的编程语言如Python、Java、JavaScript等来调用这些接口,实现自动化管理任务。 在使用H3C CAS REST API时,首先需要了解API的基本结构和请求...
这个"REST_API_EJS"项目提供了实践RESTful API设计与EJS模板引擎结合的实例,有助于开发者更好地理解和掌握这两种技术在实际项目中的应用。通过深入学习和实践,可以提升Web服务开发的专业技能。
"REST_API_APP"很可能是一个项目或教程,它教你如何使用Python来设计、实现和测试RESTful API。Python因其简洁的语法和丰富的库支持而被广泛用于API开发。以下是对这个主题的详细讲解: 1. **REST原则**:REST是一...
标题中的"profiles_rest_API"指的是一个与用户配置文件相关的RESTful API,可能是一个用Python语言开发的服务,用于处理用户资料的创建、读取、更新和删除等操作。REST(Representational State Transfer)是一种...
REST API 设计的核心原则是通过统一的接口来操作网络上的资源,使得客户端和服务器之间的交互变得简单而高效。在这个名为“single_REST_API”的项目中,我们将探讨如何设计和实现一个针对单一资源的RESTful API,它...