Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
happyPDF API description, as json schema
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib add POST pdfs to create a pdf and return json
schema/v1.0 add POST pdfs to create a pdf and return json
spec
.gitignore initial gem stub
.travis.yml only test for ruby 1.9.3
CHANGELOG.md add POST pdfs to create a pdf and return json
Gemfile update gemspec
README.md add public_id to pdt, change length of pdt name, filename
Rakefile drop rdoc task
happypdf_json_schema.gemspec

README.md

HappyPDF API Schema

Build Status

Our API (objects,resources) is described with JSON Schema (http://json-schema.org). Each Object has its own description, with those top-level keys:

{ "name": "pdf", // object type "properties": { .. }, // field descriptions "links": [ .. ] // CRUD actions, relationships to other resources }

Look into the /schema/ folder for the resources schema-files For ruby pirates this project is available as gem. It provides some utility methods to read the schema files and convert objects to their schema notation. See /lib/happypdf/schema.rb

Other languages should take advantage of the raw json files.

Field types & formats

Most of the fields are of type 'string'. Their format(espacially date fields) is casted on our side. We try to go with the formats and [types])http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1) defined by JSON-Schema

All text MUST be UTF-8 encoded.

Text-Format length varies, between ~16,000 to 65.535, with the occurence of non-ASCII Characters see this post on stackoverflow

Install

gem install happypdf_json_schema

Test

Tested with travis-ci, but of course you can run them too. Install required gems with bundler and go for it:

# git clone
bundle install
rake spec

Copyright (c) 2012-2013 Georg Leciejewski, released under the MIT license

Something went wrong with that request. Please try again.