全国统一热线:400-0592-888 /137-9977-6661(微信同号)
  • 域名查询商城模板PC模板响应式模板高级模板手机模板汇款方式网站备案材料
会心火网络,点击打开向导。
  • 首页
  • 网站建设
    • 网站总报价
    • 版1088元套餐
    • 仿1688元套餐
    • 仿2088元套餐
    • 美2688起套餐
    • 美3688起套餐
    • 美6888套餐
    • 高级定制
  • 产品&服务
    • 手机建站
    • 微信开发
    • 400电话
    • 短信接口
    • 真人语音
  • 网站推广
    • 关键词推广
    • 软件推广
    • 推广客户案例
    • 百度竞价
  • 400电话
    • 400电话
  • 资讯动态
    • 行业资讯
      • 互联网传媒
      • 互联网评论
      • 互联网外闻
      • 互联网动态
    • 帮助中心
    • 建站运营
      • 建站优化
      • 建站推广
      • 建站策划
      • 建站经验
    • 公司动态
  • 案例中心
    • 集团/上市公司
    • 礼品/茶业/烟酒
    • 传媒/文化公司
    • 房地产/商业中心
    • 电子商务
    • 家电/电子/科技
    • 医疗/制药
    • 交通运输/贸易/设施
    • 建材/建筑/家居
    • 教育培训/服务
    • 酒店/餐饮/食品
    • 日用品/轻工业/服装
    • 协会/单位/政府机关
    • 金融/能源/投资
    • 其它领域
  • 客服&公司
    • 关于我们
    • 联系我们
欢迎进入会心火网络
您是需要了解:
  • 为什么做网站?
  • 互联网作用?
  • 网站制作流程?
现在位置: 首页 >资讯动态 >行业资讯 >互联网动态 > 内容
    没有信息

API 设计的7大误区

作者:   来源:    时间:2017-08-02 11:44:09    字体:[大] [中] [小]
关键词: API    网站    
导读: 随着系统逻辑和展示层分离的过程中,API 是一个实现这种分布式应用架构的重要机制,从早期单纯的 WebService 到 RESTful,API 的设计方法、技术和理念发生了巨大的变化。然而 API 的设计实在是陷阱重重,一不小心就会落入其中,从而连累整个系统。

对于现在的绝大多数人来说,网站和移动应用已经跟空气和食物一样成为生活的必需品。然而在网站和移动系统不断演化的过程中,前后端分离是系统架构演化的一个重要分水岭。

随着系统逻辑和展示层分离的过程中,API 是一个实现这种分布式应用架构的重要机制,从早期单纯的 WebService 到 RESTful,API 的设计方法、技术和理念发生了巨大的变化。然而 API 的设计实在是陷阱重重,一不小心就会落入其中,从而连累整个系统。

如果单纯地考虑功能的话,大部分服务端开发工程师都可以设计和实现出一个说得过去的 API,但一旦有多个互相关联的 API,或者当系统压力达到一定级别时,就会有不少问题出现,甚至导致系统崩溃。

我们可以来看看常见的误区在什么地方。

1、 API 就是 RESTful API

观点:RESTful 是现在很流行的一种 API 设计风格,有大量的文章在推荐这种方法,因此我们就需要按照这种风格的要求来设计API,并且要实现全套的设计!

真相:完全不需要!

事实上 RESTful 只是一种设计思想,并不存在具体必须遵守的规则。在不同的应用系统中,API 承担了不同的各种职责和功能,针对不同的应用场景可以使用相应的规则,适用就好。尽管有一些类似于Richardson成熟度模型这样的理论,但也都不是必须做到的。虽然最高级别的成熟度是很有用的,但也要求整个系统以特定的方式运作,对于绝大部分的系统来说,低一些级别的成熟度一样工作良好,并且同时不需要花费太大的代价。

如果实现了比较完整的 RESTful API,那么会有一些好用的工具和代码可以利用,但如果自己实现,也未必会有很大的代价。

2、 API,不过就是一段 Java 代码么

观点:API?不过就是一些 Java 代码暴露一个 HTTP 地址么,找个会做 Java 的人上就行。

真相:大部分情况下都不是这样的。

这种说法,和“只要人会说话,就能进行感人的演讲”一样可笑。

软件工具的使用只是一种简单的技能,但在工具背后的思想是需要经过经验的积累以及各种周边知识的共同理解才能做到。

API 的设计与其说是一种技能,不如说是一种艺术,交流的艺术。除了代码编写以外,更多的是架构上的设计。API 是整个服务端系统暴露到客户端的接口,是所有业务逻辑提供给外部的界面,如果对于系统的整体要求和架构不了解,很难设计一个合用的 API 系统。

3、 和交互绑定的 API 设计

观点:API 是给客户端用的,在现在 App 大行其道的时候,移动端的同事说,我们需要简化网络交互,所以每个页面只需要一个 API ——什么?我要调用8个 API?不行,太慢了,只要一个,把所有的数据都放在一起给我吧,谢谢!

真相:这样的做法会导致 API 最终完全不可用。

没错,从性能的角度上看,确实这样是比较好的,但是,有没有想过,如果移动端页面设计改变了怎么办?一旦增加或者减少这个页面所需要的数据,那么这个API 立刻就变得没用了,重新设计一个?算了吧,API 升级的代价太高了,于是越来越多的重复 API 就出现了。

前后端分离的理念在于把业务逻辑和展示分离,API 作为业务逻辑的体现,以业务逻辑作为设计原则,比靠拢易变的展示层要准确和靠谱得多。从这个角度上说,引入一个中间层来适应展示的变化会更加适合。

4、 我的 API 是我的,你的 API 是你的,不互通的 API 设计

观点:系统 A 提供了一组 API,系统 B,恩,另外一个系统,所以我们需要另外一组 API,但是,不好意思,我不知道 A 是怎么做的,并且我也不关心。

真相:这是一种系统分裂的征兆,是系统业务逻辑混乱的表现。

如果把应用程序接口比做用户接口的话,这样的说法就很奇怪了。作为一个公司下的不同系统,长得完全不一样,互相之间没有任何关联性,这样用户在使用的时候会很别扭。如果把系统当成一个人,这样的设计就和这个人有两张脸一样奇怪。作为系统的架构师,要为全公司设定一个一致的API规范,程序员们对接入各个系统可以有明确的预期,并且非常有助于在系统和客户端之间共享代码,简化开发和维护的成本。

5、 API = 数据库

观点:API 设计?简单,数据库的操作映射一下好了。创建一个对象,修改一个对象,删除一个对象,赞!API 设计的生活是如此简单。

真相:等一下,作为API的使用者,客户端应用为什么需要知道数据库?难道不应该是业务驱动的吗?

很多 API 确实就是这样设计的,但如果只是单纯地按照数据库的结构进行设计,那么只能说是一个数据库的访问层而已,是SQL 语句的 HTTP 化…… 但 API应当反映的是业务内在逻辑,包括业务对象、流程和业务数据,在基于数据库的基础上,通过服务器端的业务层处理后才是 API 应当的结果。

6、 我的自留地 API,API 不开放标准

观点:我没打算开放 API 给别人用,所以也不需要遵守什么标准。

真相:标准意味着通用,有更多的简化。

话是不错,但标准的好处在于设定交流双方的一个基础,作为服务器对外的交流接口,API 始终是设计得给人用的,不仅仅是公司内部,也有可能是外部;不仅仅是现在,也有可能是未来的人在使用。和代码规范一样,符合良好规范的 API 能够极大地改善可读性、维护性,即使不开放给外部,内部交流也会获益良多。

7、 我不说,你就不知道,API 的安全性

观点:这个 API 又没有公开,所以不需要加密的。

真相:在这个互联网上是没有秘密的,所以你不让人知道,不代表别人不会知道。

关于安全,这个是 API 设计中非常重要的一个需求,但很多 API 的设计师并不重视这个。最常见的借口就是这个,我不告诉别人,谁也不知道。但事实上,API 作为交流的工具,即使服务端不容易被窥视,但大量的客户端几乎是不设防的。破解一个客户端系统并不是一个多么困难的事情,因此了解这个 API 的调用也不是太复杂的事情。

此外,在网络上的传输也是不安全的,中间人截获信息的案例导致无数的系统被攻破。按照业界的推荐方法来设计 API 的安全传输功能,尽管开发的代价会略大一些,但远比自己自以为完美的设计安全得多。

写在最后

随着越来越多的人在使用互联网,用户界面(UX)设计的影响也越来越大,所有人都开始注重用户界面设计的好坏,然而 API 是业务逻辑的用户界面,是针对程序员的界面,避免这些误区陷阱可以让这些界面更加友好,在业务逻辑和展示层都能运作得更好。

相关阅读:
  • 从农夫山泉卖咖啡来谈如何做好多元化公司网站建设 [05-14]
  • 可以提高网站设计品质的5个技巧 [03-01]
  • 外贸企业有必要做营销型网站吗?[02-26]
  • 移动网站如何引起用户阅读兴趣?[08-09]
  • 网站建设前期准备阶段如何布局企业网站栏目?[06-30]
  • IE6中的BUG解决办法[04-20]
  • 怎么做UI设计方案[03-12]
  • 2018年电商网站平台开发新趋势[03-07]
  • 2018年该怎么样选择自己的移动端关键词[02-28]
  • 怎样从网站目录和页面优化入手做好网站运营[02-07]
  • 网站设计是否应该有一个通用的设计系统?[01-30]
  • 每个网站设计师都应该知道的20个基本的CSS技巧[01-30]
  • 自助建站应该注意的几点[01-25]
  • 李彦宏登上美国时代周刊、央妈禁止虚拟货币交易、马化腾再登亚洲首富[01-22]
  • 怎样用网站来提高企业知名度与业务量[01-17]
  • 外包UI设计人才好吗[01-17]
  • 数据可视化设计的五个重要要素[01-03]
  • 微商城爆款突然没有销量怎么办?[12-27]
  • APP商城系统如何引流?[12-27]
  • 经典营销小故事[12-25]
  • 资讯排行
  • 头条
  • 推荐
  • 热门
  • 支付宝为什么要做蚂蚁森林?
  • 新媒体从业者,你最该思考的8个问题
  • 人工智能会让.ai域名成为下一个.com吗?
  • Meta标签优化方法
  • SEO、ASO和WEO他们有什么区别
  • 全球首富比尔·盖茨是费德勒的“脑残粉”
  • 新手如何学习SEO?资深站长给出的解决方案!
  • SEO七大常见误区知多少
  • 电商网站建设从哪些方面提高用户体验度
  • 如何把内容做成「爆款」
  • 2017年SEO优化16条算法调解法则
  • 如何优化获得好的移动网站关键词排名
  • 做SEO不得不知的优化技巧
  • 人工智能会让.ai域名成为下一个.com吗?
  • Meta标签优化方法
  • 新媒体从业者,你最该思考的8个问题
  • 做SEO不得不知的优化技巧
  • SEO七大常见误区知多少
  • SEO、ASO和WEO他们有什么区别
  • 支付宝为什么要做蚂蚁森林?
  • 电商网站建设从哪些方面提高用户体验度
  • 被忽视的隐私条款!APP为何敢用你的信息安全“开玩笑”
  • 如何优化获得好的移动网站关键词排名
  • 图文排行
  • 头条
  • 推荐
  • 热门
没有信息
没有信息
如何使您的网站设计面向未来?
如何使您的网站设计面向未来?
企业网站设计的内容特点有哪些?
企业网站设计的内容特点有哪些?
  • 全国免费服务电话
    400-0592-888
  • 林经理(微信同号)
    137-9977-6661
  • 让我们联系您:

版权所有 Copyright © 2003 - 2014 www.hxhuo.com All Rights Reserv ed   会心火信息 专家-厦门会 心 信息科技 有限公司 闽ICP备10202970号-23 

本站系统:站点中国(会心火建站)云网站管理系统 CMS V3.2 professional query 6,Gzip enabled.total
返回顶部