小编use*_*445的帖子

用于文件 CSV 导入的 API 设计,最佳实践方法?

我需要设计一个 REST API 来导入一个包含 30 列的员工 CSV 文件。文件中的记录数可能因业务规模而异,可能是 10,可能是 5000。

这是我的设计方法

  • POST /Employees - 将添加一个员工记录(将有 30 个属性)
  • POST /Employees?bulk - 将接受具有多个员工记录的 JSon。在这种情况下,用户可以通过传递 json 对象来添加一条记录。
  • Post /Employees?file - API 将接受 CSV 文件(特定大小),解析和处理将在服务器上完成。

在前两个选项的情况下,用户应该在发送之前读取 CSV 并转换为 JSON。

问题

  • 这是最佳实践设计吗?
  • 我应该提供 javascript 库来读取 CSV 并转换为可接受的 json 格式吗?什么时候提供 JavaScript 库?
    • 是否有任何此类 API 示例可用于为设计建模?

javascript api-design

6
推荐指数
1
解决办法
615
查看次数

如何在 Swagger 在线编辑器中使用“授权”?

我正在尝试使用 swagger 在线编辑器http://editor.swagger.io/#/

有一个名为 Authorize 的按钮可打开一个对话框,您可以在其中提供授权方法。有两种选择

第一个用于 OAuth2,第二个用于 API-Key。

我无法弄清楚如何使用这些。

  • 对于 OAuth2 授权,需要一个客户端 ID。如何获得客户端 ID?
  • 对于 api-key 授权,编辑器提供了一个名为 special-key 的密钥。当我在 postman 中没有特殊键的情况下进行 API 调用时,API 会返回有效的响应。这是因为实现也没有密钥吗?

api swagger swagger-editor

5
推荐指数
0
解决办法
704
查看次数

JMESPath - 加入嵌套数组中的项目

我有一个 JSON

{
"key": "processId-29231",
"fields": {
    "attachment": [
        {
            "id": "79572",
            "filename": "File1.png"
        },
        {
            "id": "74620",
            "filename": "File2.docx"
        },
        {
            "id": "79072",
            "filename": "File3.xlsx"
        }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要将其重组为这个

{
"processId": "processId-29231",
"attachments": [

               "https://example.com/files/79572/File1.png",
               "https://example.com/files/79572/File2.docx",
               "https://example.com/files/79572/File1.xlsx",
                ]
    }
Run Code Online (Sandbox Code Playgroud)

我可以使用特定的数组索引来完成这项工作

{processID:key,attachments:join('',['https://example.com/files/',fields.attachment[1].id,'/',fields.attachment[1].filename])}
Run Code Online (Sandbox Code Playgroud)

这产生了这个结果

{
 "processID": "processId-29231",
 "attachments": "https://example.com/files/74620/File2.docx"
}
Run Code Online (Sandbox Code Playgroud)

我以两种方式在没有数组索引的情况下尝试了这个

这个

 {processID:key,attachments:join('',['https://example.com/',fields.attachment[].id,'/',fields.attachment[].filename])}
Run Code Online (Sandbox Code Playgroud)

和这个

{processID:key,attachments:join('', ['https://example.com/',fields.attachment[*].id,'/',fields.attachment[*].filename])}
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。

有关如何解决此问题的任何提示?

jmespath

5
推荐指数
1
解决办法
3241
查看次数

在线的swagger编辑器可以通过地址栏输入一个YAML url吗?

我想访问https://editor.swagger.io/但需要根据 URL 参数预加载 YAML 文件。

因此,如果我想查看 https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v3.0/petstore.yaml,我应该能够将其作为输入提供给可通过互联网。

这可能吗?

swagger swagger-ui swagger-editor

4
推荐指数
1
解决办法
1372
查看次数