Skip to content

Instantly share code, notes, and snippets.

@julesfern
Created March 24, 2009 01:30
Show Gist options
  • Select an option

  • Save julesfern/83874 to your computer and use it in GitHub Desktop.

Select an option

Save julesfern/83874 to your computer and use it in GitHub Desktop.
shared/global.specification.markdown
====================================
---
title: Global request specification
parameters:
seed_key:
description: The Seed Key for the Seed you wish to target with your API call.
---
shared/sortable.specification.markdown
======================================
---
title: Sort specification
parameters:
sort:
description: A string matching the sort specification, describing the order in which matching results should be returned.
required: false
default: ID,ASC
---
Some text describing how to put together a sorting specification into a common string format, in markdown format.
shared/content-accept.specification.markdown
============================================
---
title: Content type specification
headers:
content-accept:
description: A MIME type indicating the desired response format.
default: application/json
values:
application/json: The response will be returned as serialized JSON object.
application/xml: The response will be returned as a serialized XML object.
application/yaml: The response will be returned as a serialized YAML object.
---
Some text describing the content-accept specification.
shared/oauth.specification.markdown
===================================
---
title: OAuth specification
parameters:
oauth_consumer_key:
description: The public consumer key for the authenticating application.
required: true
format: /^[a-zA-Z0-9]+$/
oauth_token:
description: An authorised token obtained through the authorisation workflow.
required: true
format: /^[a-zA-Z0-9]+$/
oauth_signature:
description: A signature for the request, generated according to the Oauth 1.0 standard.
required: true
format: "{{request.parameters | serialize | hmac_sha1}}"
oauth_signature_method:
description: The signature method used to produce the
required: false
values:
hmac-sha1: An HMAC-SHA1 hash using the unencrypted string as the base, and the consumer token as the key.
hmac-md5: An HMAC-MD5 hash using the unencrypted string as the base, and the consumer token as the key.
oauth_version:
description: The OAuth protocol version that the client wishes to use.
required: false
values:
1.0: 1.0 is the only supported version of OAuth at this time.
oauth_nonce:
description: A randomised string intended to by unique for the current timestamp, used in conjunction with the timestamp value to protect against replay attacks.
required: false
format: /\d+/
oauth_timestamp:
description: The milliseconds-since-epoch timestamp for the request, used in conjunction with the nonce value to protect against replay attacks.
required: false
format: /\d+/
---
Requests that require authentication must adhere to the [Oauth](http://oauth.net) standard. Our Oauth endpoint is http://foo.com/tokens....
movies/new.markdown
===================
---
title: Creating a new Movie
request:
uri: /movies/
method: post
headers:
content-accept:
specification: content-accept
application/smil: The response will be returned as a fully-qualified SMIL presentation suitable for the Videojuicer Player SDK.
parameters:
attributes: true
specifications: [sortable, oauth]
some_other_parameter:
description: Another parameter not included in the refactored listings.
required: false
---
A description of the API call goes here. A description of the API call goes here.
A description of the API call goes here. A description of the API call goes here.
movies/attributes.yaml
======================
title:
description: A title for the Movie. Will be displayed when the player is loading and when the movie is shared.
required: true
format: /\w+/
length:
maximum: 255
abstract:
description: A short description of the Movie
required: false
length: 0..255
document:
description: An optional SMIL document describing the presentation
required: false
specification: smil_document
privacy:
description: A string indicating the desired level of access given to others.
required: false
default: private
values:
private: The movie will be visible only to the authenticating user.
public: The movie will be visible to all users.
friends: The movie will be visible to people specified by the authenticating user.
---------------------------------------------------------------------------------------------------------
#In order to generate a completely new test package:
tzatziki-gen api foldername/
#Generate a new header factory
tzatziki-gen headers shared/content-types
#Generate a new parameter factory
tzatziki-gen parameters shared/oauth
#Generate a new API call
tzatziki-gen method movies/new
#Run the suites against a domain (default is localhost)
tzatziki
tzatziki --domain=http://sandbox.videojuicer.com
tzatziki -d http://sandbox.videojuicer.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment