json-api-schema
Version:
JSON Api Schema is a JSON dialect that can describe any Web Based API that uses JSON to exchange data.
74 lines (60 loc) • 1.52 kB
text/coffeescript
Parser = require("../src/parser/parser")
StringLogger = require "./utils/string_logger"
source =
title: "Example"
description: "API Model Example"
resources:
Team:
name: "Team"
schema:
properties:
name:
type: "string"
requiredProperties: ["name"]
actions:
read:
name: "read"
protocols:
http:
method: "GET"
url: "http://jas.example.com/api/teams/:id"
params:
properties:
id:
type: "string"
returns:
$ref: "http://example.com/apimod/schema/resources/Team"
types:
Error:
name: "Error"
schema:
properties:
code:
type: "number"
message:
type: "string"
required: [ "message" ]
it "Should parse api schema", ->
parser = new Parser()
api = parser.parse(source)
class PrintVisitor
constructor: (@logger) ->
log: (string) ->
visit: (e) ->
ite = e.getChildrenIterator()
while ite.hasNext()
logger = new StringLogger()
visitor = new PrintVisitor(logger)
visitor.visit(api)
logger.buffer.should.equal """
Api
Resource Team
Action read
Type Error
"""