Analysis of json-hyper-schema
- draft-4
Note: requires Ruby 2.2.7 or higher.
gem 'idcf-json_hyper_schema'
And then execute:
$ bundle
Or install it yourself as:
$ gem install idcf-json_hyper_schema
bin/json_expand [path] > [output path]
require 'idcf/json_hyper_schema'
path = File.expand_path('./sample.json')
p Idcf::JsonHyperSchema::Analyst.new.load(path)
require 'idcf/json_hyper_schema'
path = File.expand_path('./sample.json')
j = JSON.parse(File.read(path))
expand_obj = Idcf::JsonHyperSchema::Analyst.new.expand(j)
p expand_obj.schema
| name | type | default | description |
|---|---|---|---|
| global_access | boolean | true | '$ref' but when showing outside, is it acquired? |
require 'idcf/json_hyper_schema'
path = File.expand_path('./sample.json')
p Idcf::JsonHyperSchema::Analyst.new.load(path).links
or
require 'idcf/json_hyper_schema'
path = File.expand_path('./sample.json')
j = JSON.parse(File.read(path))
p Idcf::JsonHyperSchema::Analyst.new.schema_links(j)
| Q | example | note |
|---|---|---|
| description | link.description | |
| title | link.title | |
| method | link.method | Returned in lower case |
| How do I know the right method to use? | link.method?('get') | Case insensitive |
| How can I get a replaceable URL? | link.href | |
| Can I get a list of replacement parameters for URLs? | link.url_param_names | /api/{name}/{sec}{?hoge} : ["name", "sec"] |
| Can I get a list of get parameters? | link.query_param_names | /api/{name}/{sec}{?hoge} : ["hoge"] |
| Can I get a parameter information? | link.properties | |
| What can I do when I want to know what are required information? | link.required | |
| How can I create a URL by handing over parameters? | link.make_uri(['aaa'], { 'hoge' => 'h_param' }) | api/{name}{?hoge} -> api/aaa?hoge=h_param |
| How can I create a POST parameter by handing over parameters? | link.make_params({ 'hoge' => 'h_param' }) | { 'hoge' => 'h_param' } |
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "sample",
"description": "",
"definitions": {},
"properties": {
"test": {
"links": [
{
"title": "sample",
"description": "",
"href": "/api/{name}",
"method": "post",
"rel": "self",
"schema": {
"properties": {
"hoge": {
"type": "string"
}
}
},
"targetSchema": {
"example": {},
"properties": {}
}
}
]
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "sample",
"description": "",
"definitions": {},
"properties": {
"test": {
"links": [
{
"title": "sample",
"description": "",
"href": "/api/{name}{?hoge,piyo}",
"method": "post",
"rel": "self",
"schema": {
"properties": {}
},
"targetSchema": {
"example": {},
"properties": {}
}
}
]
}
}
}
After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
- Fork it ( https://github.com/idcf/idcf-json_hyper_schema/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request