我是网络应用程序设计的新手。当代Web应用程序通常采用这种形式:
因此,Web服务API应该是设计的关键部分。
我们如何设计它?具体来说:
具体来说,假设有这样的要求:
客户应该可以上传和删除某些文件 文件存储库。
- 醇>
在修改文件存储库中的文件之前,必须对客户进行身份验证。
如何将其转换为详细的API规范,然后具体的类定义?
相关链接:http://piwik.org/blog/2008/01/how-to-design-an-api-best-practises-concepts-technical-aspects/
读了一些书后,我来到了这里:
RESTful架构只是集成的众多方法之一 应用。它利用Web标准,希望能够实现 集成简单而自然。资源由URL标识, 用HTTP方法操纵,并在某些序列化中传输 在综合政党方便时形成。
答案 0 :(得分:2)
要创建Web API(即RESTful服务),您需要遵循REST原则。我认为这个链接可以为您提供有关RESTful服务/ Web API设计的一些提示:http://restlet.com/blog/2015/03/16/designing-a-web-api/。
简而言之,RESTful服务应该利用它们设计的HTTP方法:
GET
:返回资源的状态POST
:对资源执行操作(在资源列表中创建元素,...)。注意不要在URL中使用操作名称(类似/elements/some-action-name
),因为它不是RESTful。PUT
:更新资源的完整状态PATCH
:部分更新资源状态DELETE
:删除资源您还需要注意,他们可以在不同级别申请,因此方法不会做同样的事情:
/elements
)/elements/{elementid}
)您必须考虑的其他重要事项是:
Content-Type
表示所使用的内容类型(例如,jSON的应用程序/ json)和Accept
用于内容协商(如果需要)... 否则,您可以利用Swagger和RAML等格式来制作Web API。像Restlet Studio这样的工具可以很好地帮助在线创建REST服务的结构,获取相应的Swagger和RAML内容,甚至生成服务器骨架或客户端SDK。您可以注意到此工具仅遵循REST原则......
关于安全性,您需要利用Authorization
标头。有几种策略:
关于文件上传,您可以利用多部分内容。请看这个链接:http://restlet.com/blog/2015/10/27/implementing-file-upload-with-restlet-framework/。我们使用Restlet框架,但您可能会选择一些通用提示......
希望它可以帮到你, 亨利
答案 1 :(得分:0)
在我看来,Rest-full API的概念有点模糊,我建议你看一下这篇文章http://martinfowler.com/articles/richardsonMaturityModel.html
没有多少公共休息 - 完全api实际上达到了讨论的级别3.一般的想法是围绕"资源"模拟你的api。您的应用程序处理并尊重正确的http动词。
至于工具我有点像https://apiary.io/它可以帮助你构建一个API并且也可以提供模拟响应