• ASP.NET Web API实践系列11,如何设计出优秀的API


    本篇摘自:InfoQ的微信公众号

    在设计API的时候考虑的问题包括:API所使用的传输协议、支持的消息格式、接口的控制、名称、关联、次序,等等。我们很难始终作出正确的决策,很可能是在多次犯错之后,并从中吸取经验,才能够接近正确的决策。而通过迭代的方式,只要有足够的机会,就能在API设计方面接近完美。

    一个公开的API就像砖石,它是永恒不变的。(引自Joshua Block)

    要知道,API的变更代价很大,并且伴随着很大的风险。但同时,破坏性的变更通常不可避免。

    我们要做的是:在接口发布之前尽早迭代修复问题。也就是说,我们先设计与实现接口而不发布他们,等进行足够的审查与测试再发布。

    具体来说,可以按照"草图设计→原型设计→实现"的方式去做。

    草图设计

     

    草图无需反映出整个接口,无需过于深入。API草图设计过程有一种好方法,就是定义接口中最明显的单词列表。有哪些单词是用户必须知道的?哪些单词能够最好地表达目标受众的目的与任务?通过回答这些问题,创建一份接口的词汇表。

    原型设计

     

    这个阶段对草图阶段的一些假设进行验证。一个好的原型大致是:

    ● 可以被调用
    ● 能够处理真实的请求信息
    ● 在必要的时候提供响应
    ● 开发者能够通过原型API创建出一个简单的应用

    如何保证创建原型的成本低于一个完整的实现呢?

     

    --模拟响应的消息,不是由后台系统输出响应信息,而是模拟响应信息,这种方式也称为接口的虚构(mocking)。

    建立原型的目的是什么?

     

    --为投入找到一个合适的范围,能够至此后续的迭代。

    通过原型,有机会获得用户反馈,更接近最终的实现。

    实现

     

    实现是将一个原型接口转变成实际可以使用的接口。

    API设计的自动化工具

    ● 适用于原型设计的工具:Swagger,RAML,Blueprint,WADL。
    ● 适用于草图设计的工具:Rapido!

  • 相关阅读:
    linux面试常问命令
    图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导
    总结一些牛客网上 的算法岗面试题
    Pytorch-Tensor基本操作
    C++使用代码创建一个Windows桌面应用程序
    Windows中的消息与消息队列
    解决COM组件在WPF设计器中命名空间不存在XXX的问题(附带如何在WPF中使用APlayer引擎)
    Mybatis的一级缓存
    面试题:zookeeper实现分布式锁
    sublime text 文件默认打开格式
  • 原文地址:https://www.cnblogs.com/darrenji/p/4759325.html
Copyright © 2020-2023  润新知