UNPKG

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
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) -> @level = 0 log: (string) -> @logger.log (new Array(@level + 1).join(" ") + string) visit: (e) -> @log [e.getEntityType()].concat( if e.getName then [e.getName()] else [] ).join(" ") @level++ ite = e.getChildrenIterator() while ite.hasNext() @visit(ite.next()) @level-- logger = new StringLogger() visitor = new PrintVisitor(logger) visitor.visit(api) logger.buffer.should.equal """ Api Resource Team Action read Type Error """