WSO2 API Manager Два параметра в теле - PullRequest
0 голосов
/ 30 января 2020

Я работаю с API Manager версии 3.0.0.

На странице «Издатель» в разделе «Ресурсы» мне нужно добавить два или более параметра, если тип BODY, а метод HTTP - POST, аналогично Example with Query parameter, но разрешает только один, когда параметром является Body.

Возможно ли добавить более одного параметра BODY? и как?

Редактировать:

Возможно иметь два параметра в BODY, с помощью этой формы в API Publisher-> API Definition -> Edit, отредактируйте сервис, который вам нужен, аналогично:

/v1/nipCliente: 
      post: 
        requestBody: 
          content: 
            application/x-www-form-urlencoded: 
              schema: 
                type: "object"
                properties: 
                  id_usuario: 
                    type: "string"
                  password: 
                    type: "string"
                  nip: 
                    type: "string"
          required: false
        responses: 
          200: 
            description: "ok"
        security: 
          - 
            default: []
        x-auth-type: "None"
        x-throttling-tier: "Unlimited"

На этой же странице выглядит так:

Example

В API Developer-> Try Out выглядит примерно так: BODY PARAMETERS

1 Ответ

2 голосов
/ 30 января 2020

Несколько параметров тела в запросах POST, PUT НЕ разрешены проектом, поскольку для запроса может быть только одна полезная нагрузка. [1]

Если тело запроса содержит несколько параметров, вы можете отправить его как один объект json.

Необходимо изменить метод службы бэкэнда, чтобы он принимал указанный объект c модель.

Пример: скажем, я хочу отправить следующее в качестве тела.

{
   "name" : "Joe",
   "age" : 23,
   "grade" : 9
}

Метод внутреннего сервиса, который ожидает объект Student.

@POST
public Response studentPost(Student student) {

}

Объект Student

public class Student{
   String name;
   int age;
   int grade;

   ... getters/ setters ...

}

Или вы можете использовать разные параметры. то есть параметры запроса + тело + параметры заголовка.

[1] https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameter -объект

...