当前位置:  开发笔记 > 编程语言 > 正文

Web API设计技巧

如何解决《WebAPI设计技巧》经验,为你挑选了1个好方法。

我目前正在开发一个非常简单的Web服务,并认为我可以为此编写API,所以当我决定在新平台上扩展它时,我只需要编译解析器应用程序.也就是说,API不适合其他开发人员,但我不会限制访问它,所以任何人都可以在此基础上构建.

然后我想我甚至可以通过这个API运行网站本身,原因有很多,比如带宽消耗较低(浏览器生成的HTML)和客户端缓存.作为AJAX的重量似乎是一个更大的理由.

布局如下所示:

Server (database, programming logic)
|
API (handles user reads/writes)
|
Client application (the website, browser extensions, desktop app, mobile apps)
|
Client cache (further reduces server reads)

介绍之后我的问题是:

    这是API的良好用途

    通过API运行整个网站是一个好主意

    使用API​​时我有哪些安全身份验证选择(出于某种原因我不想使用HTTPS)

编辑

其他问题:

    我没有考虑过任何其他方法

    使用这种方法可能产生的一些潜在问题我没有考虑到

Neville Kuyt.. 17

首先要做的事情.

询问设计(或实际上是什么)是否"好"取决于你如何定义"善".典型的标准是性能,可维护性,可伸缩性,可测试性,可重用性等.如果您可以添加一些上下文,这将有所帮助.

话说回来...

这是API的良好用途

将业务逻辑与表示逻辑和数据持久性逻辑分离出来通常是个好主意.你的设计就是这样,因此我很乐意将其称为"好".你可能会看一个正式的设计模式来做到这一点 - 模型视图控制器可能是当前的默认设置,尤其是.用于Web应用程序.

通过API运行整个网站是一个好主意

那么,这取决于应用程序.完全可以在Javascript/Ajax中编写应用程序,但是存在浏览器兼容性问题(尤其是旧版浏览器),并且您必须为用户通常期望的Web应用程序提供支持,例如深层链接和搜索引擎友好性.如果你有一个考虑周全的API,你可以在服务器上进行一些页面生成,如果这样可以更容易.

使用API​​时我有哪些安全身份验证选择(出于某种原因我不想使用HTTPS)

棘手的 - 使用这种应用程序,您必须区分对用户进行身份验证和验证应用程序.对于前者,OpenID或OAuth可能是主要的解决方案; 对于后者,请查看Google如何要求您注册使用他们的Maps API.

在大多数Web应用程序中,HTTPS不用于身份验证(证明当前用户是他们所说的人),而是用于加密.这两者是相关的,但绝不等同......

我没有考虑过任何其他方法

也许这更符合问题5 - 但根据我的经验,API设计是一项相当深奥的技能 - API设计师很难能够准确预测API的客户端将需要什么.我会认真考虑在没有API的情况下为您的第一个客户端平台编写应用程序,并在以后分解API - 这样,您只需在第一个版本中构建所需的内容.

使用这种方法可能产生的一些潜在问题我没有考虑到

版本控制与API有很大关系 - 一旦您创建了一个界面,您几乎永远不会更改它,尤其是对于您无法控制的多个客户端.我将构建版本作为一流的概念 - 使用RESTful API,您可以将其作为URL的一部分.



1> Neville Kuyt..:

首先要做的事情.

询问设计(或实际上是什么)是否"好"取决于你如何定义"善".典型的标准是性能,可维护性,可伸缩性,可测试性,可重用性等.如果您可以添加一些上下文,这将有所帮助.

话说回来...

这是API的良好用途

将业务逻辑与表示逻辑和数据持久性逻辑分离出来通常是个好主意.你的设计就是这样,因此我很乐意将其称为"好".你可能会看一个正式的设计模式来做到这一点 - 模型视图控制器可能是当前的默认设置,尤其是.用于Web应用程序.

通过API运行整个网站是一个好主意

那么,这取决于应用程序.完全可以在Javascript/Ajax中编写应用程序,但是存在浏览器兼容性问题(尤其是旧版浏览器),并且您必须为用户通常期望的Web应用程序提供支持,例如深层链接和搜索引擎友好性.如果你有一个考虑周全的API,你可以在服务器上进行一些页面生成,如果这样可以更容易.

使用API​​时我有哪些安全身份验证选择(出于某种原因我不想使用HTTPS)

棘手的 - 使用这种应用程序,您必须区分对用户进行身份验证和验证应用程序.对于前者,OpenID或OAuth可能是主要的解决方案; 对于后者,请查看Google如何要求您注册使用他们的Maps API.

在大多数Web应用程序中,HTTPS不用于身份验证(证明当前用户是他们所说的人),而是用于加密.这两者是相关的,但绝不等同......

我没有考虑过任何其他方法

也许这更符合问题5 - 但根据我的经验,API设计是一项相当深奥的技能 - API设计师很难能够准确预测API的客户端将需要什么.我会认真考虑在没有API的情况下为您的第一个客户端平台编写应用程序,并在以后分解API - 这样,您只需在第一个版本中构建所需的内容.

使用这种方法可能产生的一些潜在问题我没有考虑到

版本控制与API有很大关系 - 一旦您创建了一个界面,您几乎永远不会更改它,尤其是对于您无法控制的多个客户端.我将构建版本作为一流的概念 - 使用RESTful API,您可以将其作为URL的一部分.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有