Skip to content

Instantly share code, notes, and snippets.

@pinglamb
Created November 2, 2011 15:31
Show Gist options
  • Save pinglamb/1333945 to your computer and use it in GitHub Desktop.
Save pinglamb/1333945 to your computer and use it in GitHub Desktop.
damn-api sample spec
{
"host": ["api.example.com", "api-staging.example.com"],
"headers": { // By default, optional: false
"X-EXAMPLE-DEVICE-TYPE": ["iphone", "android"],
"X-EXAMPLE-DEVICE-UUID": {
"value": "mock",
"optional": true
},
"X-EXAMPLE-APP-ID": ["com.example.iphone.app1", "com.example.iphone.app2", "com.example.android.app1"]
},
"api_groups": [
{
"name": "Account API",
"apis": [
{
"name": "Account Registration",
"type": "json", // Response Type
"path": "/api/v1/account/register.json",
"method": "POST",
"body": { // Need to consider body type - form-data, json, ...
"user[username]": "*", // Text Field for free input
"user[password]": "*",
"user[password_confirmation]": "*"
}
},
{
"name": "Get Account Info",
"type": "json",
"path": "/api/v1/account/profile.json",
"method": "GET",
"headers": { // Merge with or Override global headers config
"X-EXAMPLE-AUTH-TOKEN": "mock" // Only one fixed value
}
}
]
},
{ // Another API Group
"name": "Articles API",
"apis": [
{
"name": "Get New Article Form",
"type": "web", // Render WebView
"path": "/api/v1/articles/new",
"method": "GET"
},
{
"name": "List Articles",
"type": "json",
"path": "/api/v1/articles.json",
"method": "GET",
"params": { // URL Params, i.e. /api/v1/articles.json?page=1&per_page=15
"page": "\d", // Free input, but Integer only
"per_page": {
"value": "\d",
"optional": true
}
}
}
]
}
]
}
@pinglamb
Copy link
Author

pinglamb commented Nov 3, 2011

Great. You can use the raw JSON here to construct the app first. I will write a (partial) Twitter API Spec at the same time so that we have a good target for POC.

@pinglamb
Copy link
Author

pinglamb commented Nov 3, 2011

@mystcolor Clarification

case single_string
when "*"
  show_text_input(:tip => "Any string")
when "\d"
  show_text_input(:tip => "Number only")
else
  show_fixed_value(single_string)
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment