私はswagger仕様を作成しました
/config/download:
post:
summary: Download config
consumes:
- application/json
produces:
- application/zip
parameters:
- in: body
name: config
schema:
type: array
items:
title: config files
description: All config file name that need to be downloaded
type: string
minItems: 0
maxItems: 1024
responses:
200:
description:
schema:
type: string
format: binary
私はgo-swaggerでこのswagger仕様をコンパイルしており、これにもバックエンドを実装しています
しかし、このリクエストをカールしようとすると、
curl -i http://127.0.0.1:<port>/config/download -X "POST" -d '{"config": ["config1.json", "config.json"]}' -H "Content-Type: application/json"
HTTP/1.1 400 Bad Request
Content-Type: application/json
Date: Tue, 02 Feb 2021 07:36:06 GMT
Content-Length: 132
Connection: close
{"code":400,"message":"parsing config body from \"\" failed, because json: cannot unmarshal object into Go value of type []string"}
curl に問題はないと思いますが、swagger 仕様も正しいようです。サーバーがこのリクエストを正しく処理しておらず、バックエンドの実装コードに到達していないことは、curl エラー メッセージから明らかです。
どんな提案でも大歓迎です。