Giter Club home page Giter Club logo

Comments (6)

MikeRalphson avatar MikeRalphson commented on August 16, 2024 1

@bc-AlyssNoland yes, the collapsible schema in Swagger-UI is nice, it's a pity as we're going through a static format such as markdown, we don't have the option to inject scripts like that. Widdershins lists the Body parameter with it's type name (from the #/definitions/name if present) and then shows an example of that schema (using openapi-sampler) in the right hand pane.

I wonder whether it might be worth having a switch to control whether the schema itself or the example is output? I think showing both (though useful) might take up too much room on the right hand side.

FYI I've just pushed some updates, check out the README for new data properties, including queryString, allHeaders, queryParameters, headerParameters, and exampleValues. They should make writing code templates easier (if not any more readable).

You can now also specify a callback function to get control before each template is output, in case you need to alter the data object in a any way.

from widdershins.

MikeRalphson avatar MikeRalphson commented on August 16, 2024

Better might be a parameter.exampleValues object with an initial property json, in case we want to extend this further with language specific formats.

Getting Python's indenting rules correct may be complex.

Also to consider is whether body ought to be in the parameters array at this point - it's probably passed differently in most languages / frameworks.

from widdershins.

MikeRalphson avatar MikeRalphson commented on August 16, 2024

@bc-AlyssNoland - do you have any input into this at the design stage?

from widdershins.

PreciselyAlyss avatar PreciselyAlyss commented on August 16, 2024

@MikeRalphson I agree with your point of using json to make it more language agnostic.

I've been comparing the output of widdershins to the swagger editor as that is also built with a flavor of JS. They will indicate the body parameter and then the schema within the body.

image

image

The ruby template I was working on looks fairly similar to the python one fwiw

require 'rest-client'
require 'json'


{{? data.method === 'put'}}
result = RestClient.{{=data.method}} '{{=data.url}}', {content_type: :json, accept: :json}, headers: {X-Auth-Client => 'ClientID', X-Auth-Token => 'AuthToken'}, params:
  {
		{{? data.parameters.length-1 != index}}
		{{~ data.parameters :p:index}}{{=p.name}}:'{{=p.type}}'{{? index == 0 }},{{?}}
		{{~}}{{?}}
  }
{{?? data.method === 'post'}}
result = RestClient.{{=data.method}} '{{=data.url}}', {content_type: :json, accept: :json}, headers: {X-Auth-Client => 'ClientID', X-Auth-Token => 'AuthToken'}, params:
  {
		{{? data.parameters.length-1 != index}}
		{{~ data.parameters :p:index}}{{=p.name}}:'{{=p.type}}'{{? index == 0 }},{{?}}
		{{~}}{{?}}
  }
{{?? data.method === 'get' || 'delete'}}
result = RestClient.{{=data.method}} '{{=data.url}}', {content_type: :json, accept: :json}, headers: {X-Auth-Client => 'ClientID', X-Auth-Token => 'AuthToken'}
{{?}}

p JSON.parse(result)

from widdershins.

MikeRalphson avatar MikeRalphson commented on August 16, 2024

I wonder whether it might be worth having a switch to control whether the schema itself or the example is output?

-- raw option added for this.

from widdershins.

MikeRalphson avatar MikeRalphson commented on August 16, 2024

Included in v1.1.0

from widdershins.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.