swagger-ui icon indicating copy to clipboard operation
swagger-ui copied to clipboard

Example request string is not populated

Open ekazakas opened this issue 8 years ago • 13 comments

Trying to migrate from swagger-ui 2x to 3.0.12. It seems that swagger-ui 3.x is not able to render x-examples data.

"/data/targets" : { "post" : { "tags" : [ "dummy" ], "summary" : "Returns validation results of given list of targets.", "description" : "", "operationId" : "dataTargets", "produces" : [ "application/json" ], "parameters" : [ { "in" : "body", "name" : "body", "description" : "Targets list in JSON format.", "required" : true, "schema" : { "type" : "string" }, "x-examples" : { "default" : "{\"targets\": \"[1, 2, 3, 4]\"}" } } <...> }

In version 2.x swagger-ui was able to use the value from x-examples as example request. As a quick and dirty hack, I have made some changes in src/core/components/param-body.jsx

updateValues = (props) => { let { specSelectors, pathMethod, param, isExecute, consumesValue="" } = props let parameter = specSelectors ? specSelectors.getParameter(pathMethod, param.get("name")) : {} let isXml = /xml/i.test(consumesValue); let paramValue = isXml ? parameter.get("value_xml") : parameter.get("value"); if (parameter.get("x-examples") && parameter.get("x-examples").get("default")) { paramValue = parameter.get("x-examples").get("default") } .... }

Is it possible to address this properly? Add support of x-examples into core or maybe create a plugin for this?

ekazakas avatar Jun 13 '17 07:06 ekazakas

We currently don't have support for x-example/s in 3.X.

webron avatar Jun 13 '17 16:06 webron

@webron any idea / hints how this could be done? I could try and make a contribution.

ekazakas avatar Jun 14 '17 14:06 ekazakas

Thanks for the offer. Unfortunately, I can't point you in the right direction, and while @shockey can, he's really focused on finishing a different task right now. I'll assign the ticket to him so he could hopefully get back to you next week.

webron avatar Jun 14 '17 19:06 webron

Sure, that would be great!

ekazakas avatar Jun 16 '17 14:06 ekazakas

@kamiKAZIK, apologies for the delay in my reply.

Your change to param-body.jsx seems like a step in the right direction - if you'd like to open a PR for this feature, I'd be happy to review it.

To you, and to anyone else considering implementing this feature, here's some prior art on x-example: https://github.com/swagger-api/swagger-ui/issues/1980

shockey avatar Jun 27 '17 02:06 shockey

@kamiKAZIK I use examples too but just the regular examples (not the "x-examples" never had a need for those) and they do work on v3.x.

Take a look here: http://swashbuckletest.azurewebsites.net/swagger/ui/index#/Dictionary/Dictionary_PostEcho

image

heldersepu avatar Jul 03 '17 01:07 heldersepu

I am currently in the same boat of having missing x-example value display for my parameters in swagger-ui 3.x. I noticed that java-package io.swagger.models.parameters.AbstractSerializableParameter has:

@JsonProperty("x-example") public Object getExample() {

So a swagger.json generated with swagger.jaxrs.listing.SwaggerSerializers will only have "x-example" but not "example" fields

Now i am unsure why this is the case. Is "example" not a valid field for a Parameter and "x-example" is required?

Am i understanding correctly that x-example support is supposed to be added to be supported by swagger-ui and the Parameter-Objects should keep their x-example Fields?

QuasiSoDo avatar Jul 07 '17 14:07 QuasiSoDo

hi @shockey, any workaround so we can get the values populated in the UI? I'm using v 2.0 and can't seem to find any way to make the UI shows the values I have in the x-examples or examples element. Thanks!

gmartinezsan avatar Sep 01 '17 03:09 gmartinezsan

@gmartinezsan Do you still have the problem? Can you send us your swagger.json?

heldersepu avatar Oct 26 '17 14:10 heldersepu

Hello, is this problem fixed for swagger 2.0 and swagger ui 3.25.0? I still have this problem.

mmamyan avatar Apr 02 '20 14:04 mmamyan

By the way, OpenAPI 3 has built-in support for request body examples. You can provide one or multiple examples and also reference external examples.

openapi: 3.0.0

paths:
  /something:
    post:
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:   # <------
              targets: [1, 2, 3, 4]

hkosova avatar Mar 24 '21 14:03 hkosova

Hey Can you assign this to me? I will try to fix the issue Thank you

cxx5208 avatar Feb 15 '24 08:02 cxx5208

@cxx5208 this is an open source project ... you don't need anything assigned to you ... just submit a PR with your fix and add a comment referencing this issue

heldersepu avatar Feb 15 '24 17:02 heldersepu