Comments (6)
@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.
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.
@bc-AlyssNoland - do you have any input into this at the design stage?
from widdershins.
@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.
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.
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.
Included in v1.1.0
from widdershins.
Related Issues (20)
- Support custom media type HOT 6
- Add option "--header-offset"
- Add support for OpenRPC
- Support for AsyncAPI version 2.2
- headingLevel is getting overriden to default value i.e 2.
- Vulnerability for package [email protected] in widdershins
- Upgrade to [email protected] to fix yargs-parser vulnerability
- CODE SAMPLES ERROR WIDDERSHINS + SLATE
- node can't find widdershins module after npm install is run HOT 2
- Any programmable API? HOT 1
- shins dependency is including vulnerable jquery version 3.2.1
- Missing body parameter code for API languages other than JavaScript HOT 2
- User defined data fields to be used in templates
- user_template is not well defined HOT 1
- Could not get ToC to generate
- Generate Markdown with no html headers
- Bump version of httpsnippet
- Error picking up user templates HOT 1
- Multiline markdown in response examples breaks table in Markdown
- Resolving external refs and showing as links
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from widdershins.