npm 包 @aws-sdk/middleware-serializer 使用教程

阅读时长 4 分钟读完

简介

@aws-sdk/middleware-serializer 是用于在 AWS SDK for JavaScript (V3) 中自动生成 HTTP 请求体和响应正文的中间件。它使开发人员可以将参数自动序列化为 JSON 或表单编码格式,并将响应体自动反序列化为 JavaScript 对象。

安装

@aws-sdk/middleware-serializer 可以通过 npm 进行安装:

使用

可以通过创建一个新的 SDK 对象(由 @aws-sdk/client-*-package 创建)并向客户端添加序列化器中间件来使用序列化器中间件。

-- -------------------- ---- -------
------ - --------- ---------------- - ---- ---------------------
------ - -------------------- - ---- ---------------------------------

----- -- - --- ----------
  ------- ------------
  ---------------- -----------------------
---

----- ------ - -
  ------- -----------------
  ---- -----------------
--

----- ------- - --- -------------------------

----- -------- - ----- -----------------
----------------------

在上面的示例中,我们创建了一个包含序列化器中间件的 S3 客户端,并使用 GetObjectCommand 将 S3 对象名称指定为参数。然后,使用 S3Client 发送命令以获取对象。

深入了解

默认情况下,AWS SDK for JavaScript (V3) 在发送请求时将参数转换为 JSON 对象,并使用相应的内容类型标头来指示 AWS 服务将响应正文解释为 JSON。但是,有时可能需要使用表单编码格式来发送参数,或者将响应正文解释为其他格式(例如 XML)。

幸运的是,@aws-sdk/middleware-serializer 允许用户配置序列化和反序列化行为。序列化器中间件提供两个选项:

  • serialize
  • deserialize

这两个选项都是函数对象,它们接受参数和响应体并返回序列化或反序列化后的字符串或对象。

下面是一个自定义序列化和反序列化的示例:

-- -------------------- ---- -------
------ - --------- ---------------- - ---- ---------------------
------ - -------------------- - ---- ---------------------------------
------ - -- ----------- ---- --------------

----- -- - --- ----------
  ------- ------------
  ---------------- -
    --------------------------------
      ---------- ------- ---- -- -
        ------ -----------------------------
      --
      ------------ -------- ---- -- -
        ------ --------------------------
      --
    ---
  --
---

----- ------ - -
  ------- -----------------
  ---- -----------------
--

----- ------- - --- -------------------------

----- -------- - ----- -----------------
----------------------

在上面的示例中,我们使用 querystring 库将参数和响应体序列化为表单编码格式和反序列化为 JavaScript 对象。这里也可以使用其他任何库。

结论

@aws-sdk/middleware-serializer 是一个非常有用的中间件,可帮助您自动将参数和响应体序列化和反序列化为 JSON 或表单编码格式。我们也看到了如何自定义序列化和反序列化逻辑,以及如何向客户端添加中间件。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6eecd2a9b7065299ccba21

纠错
反馈