当前位置: 首页 > 网络应用技术

python构建休息风格的接口API

时间:2023-03-06 21:49:01 网络应用技术

  在构建REST API时,要采取的第一步是确定API的资源。这些资源通常被描述为复数名词,例如,或当识别Web服务中的不同资源时,您将构建一个名词列表来描述用户可以在API中管理的不同数据。

  执行此操作时,请确保考虑任何嵌套资源。

  确定Web服务中的资源后,您需要使用这些资源来定义API接口。在这里,您可能会在付款处理服务中发现的API中找到资源的一些示例:

  获取事务列表。获取单个事务。创建新事务。任期事务。事务的部分。删除事务记录。这些六个节点涵盖了在Web Services中创建,读取,更新和删除的所有操作。Web服务将具有类似的节点列表,具体取决于用户可以使用API的操作。

  注意:节点不应包括谓词。

  此处无需包含在接口中。HTTP方法通过指示操作为端点提供了语义含义。您可以从接口中删除:

  该界面仅包含一个复数名词,HTTP方法传达操作。

  现在查看嵌套资源的接口示例。在这里,您将看到嵌套在资源下的接口:

  获取客人的列表。为一位嘉宾录制。创建一个新来的来宾。任意访客。有些更新guests.pelete the Gueste。这些接口可以管理系统中的特定事件。

  这不是定义嵌套资源的接口的唯一方法。一些人更喜欢使用查询字符串访问嵌套资源。查询字符串允许您使用http request发送其他参数。在以下接口,添加查询字符串以获取以获取具体的:

  该节点将筛选出任何未参考的给定。像API设计中的许多内容一样,您需要确定哪种方法最适合您的Web服务。

  注意:REST API不太可能在Web服务的整个生命周期中保持不变。资源将改变,您需要更新接口节点以反映这些更改。这是由API版本控制的位置。API版本控件使您可以修改API,而不必担心破坏现有的集成。

  控制策略有多种版本。选择正确的选项取决于API的要求。这里是一些最受欢迎的API版本控制选项:

  无论您选择哪种策略,API的版本控件都是确保它可以适应不断变化的需求并支持现有用户的重要步骤。

  格式化Web服务数据的两个常见选项是XML和JSON。在传统上,XML在[SOAP] API中非常受欢迎,但是JSON在REST API中更受欢迎。要比较两者,请参见将格式化为XML和JSON的示例。

  以下是一本格式为XML的书:

  XML使用一系列元素来编码数据。每个元素具有启动和结束标记,并且数据位于两个之间。元素可以嵌套在其他元素中。

  现在,查看JSON中的相同内容:

  JSON将数据存储在类似于Python字典的键值中。例如XML,JSON将嵌套数据支持到任何级别,因此您可以对复杂的数据进行建模。

  JSON和XML并不比另一个更好,但是REST API开发人员更喜欢JSON。当您将REST API与前端框架配对时,这是尤其如此。

  选择数据格式后,下一步是确定如何响应HTTP请求。RESTAPI的所有响应都应具有类似的格式,并包含正确的HTTP状态代码。

  在本节中,您将检查一些HTTP对管理列表假设的响应的示例。这些示例将使您了解如何设置API响应的格式。要清除,您将查看原始的HTTP请求和响应,而不是使用图像。

  要开始操作,请检查正确的请求,并返回以下列表:

  此HTTP请求包括四个部分:

  这四个部分是您发送请求所需的所有内容。

  API返回响应,其中包含列表。您知道由于状态代码而引起的响应。响应的标题也设置为。此响应告诉用户响应已解决为JSON。

  注意:当您使用真实的API时,您会看到与此相比,这些头部不同。

  请始终在响应上设置正确的标题。如果您将JSON发送到。如果是XML,则将其设置为。此标头告诉用户如何分析数据。

  您还希望在响应中包含适当的状态代码。对于任何成功的请求,应将其返回。这告诉用户他们的请求已按预期处理。

  看另一个请求,这一次是汽车:

  此HTTP请求查询汽车的API。以下是:

  此响应包含带有汽车数据的单个JSON对象。由于它是一个对象,因此不需要在列表中打包。就像先前的响应一样,也有一个状态代码。

  注意:请求切勿修改现有资源。如果请求包含数据,则应忽略此数据,并且API应返回不固定的资源。

  接下来,检查添加新车的请求:

  此请求包含新车的JSON。它将标题设置为API知道请求的内容类型。API将从JSON创建新车。

  以下是回应:

  此响应具有状态代码,可以通知用户他们创建了新资源。请确保使用所有成功的请求。

  此响应还包括新车的副本,其中包含API。请将其发送回响应中的A,以便用户可以再次修改资源。

  注意:当用户使用或修改资源时,发送资源的副本非常重要。以此方式,用户可以看到其更改。

  现在查看请求:

  此请求使用所有新数据在上一个请求中更新汽车。reminder,请使用新数据来更新资源上的所有字段。以下是响应:

  响应包括带有新数据的副本。相似,您始终想向请求发送完整的资源。这也适用于请求:

  仅请求资源的一部分。在上述请求中,该字段将使用新值更新。以下是响应:

  响应包含一个完整的副本。您可以看到,只有该字段已更新。

  最后,查看REST API在接收请求时应如何响应。以下删除:

  此响应仅包括状态代码。本状态代码告诉用户成功的操作,但是在响应期间没有返回内容。这是有道理的,因为它已被删除。没有理由将其发送回响应中。

  REST API的请求始终可能会失败。最好定义错误响应的外观。这些响应应包括错误的说明和相应的状态代码。在本节中,您将看到一些示例。

  首先,请检查API中不存在的请求:

  在这里,用户没有要求发送的请求。API将发送以下响应:

  此响应包括状态代码。此外,该响应还包含一个带有描述性错误消息的JSON对象。提供说明错误消息,以向用户提供有关错误的更多上下文。

  现在,当用户发送无效请求时,请查看错误响应:

  此请求包含JSON,但格式不正确。它缺少正确的大括号()。API将无法处理此数据。错误响应将为用户提供以下问题:

  此响应包括一个描述性错误消息和状态代码,以告知用户他们需要维修请求。

  即使请求的格式正确,也可能是错误的。

  在此请求中,用户发送XML,但API仅支持JSON。API的响应方法如下:

  此响应包括状态代码,以指示请求包含不支持API的数据格式。此错误代码对于格式错误的数据有意义,但即使格式也无效?

  在下一个示例中,用户发送请求,但是包含的数据与其他数据的字段不匹配:

  在此请求中,用户将和字段添加到JSON。API不支持这些字段,因此它响应错误消息:

  此响应包括状态代码。该状态代码指示请求没有问题,但是数据无效。RESTAPI需要验证传输数据。如果用户使用请求发送数据,则API应验证数据和数据通知用户任何错误。

  响应请求(无论是否成功)是REST API的最重要任务之一。如果您的API提供直观且准确的响应,则用户更容易在Web服务上构建应用程序。Python Web框架抽象处理HTTP请求和返回响应的复杂性。

  原始:https://juejin.cn/post/7112734937895141390