{"_id":"api-easy","_rev":"44-6b41309d10870d5551a02db2b607ab95","name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.3":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.2.3","author":{"name":"Charlie Robbins","email":"charlie.robbins@gmail.com"},"repository":{"type":"git","url":"git://github.com/indexzero/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"request":">= 1.9.0","vows":">= 0.5.2"},"devDependencies":{"journey":">= 0.4.0-pre-2"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_id":"api-easy@0.2.3","_engineSupported":true,"_npmVersion":"1.0.10","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"fbf8244e5215073bc93f6bf0d193d6ba31c91b17","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.2.3.tgz","integrity":"sha512-I+EIFaVhf87pVMcrfl/A9oUno6mTzbiHG8uL76rf0DLEdFEhxjcmMgtqjsOsbD1T4GToLVECWizufD2a6CEaIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCce0KJI+hTf9117A+vRhisZxXxBfuwJeOERFrj6uxfPQIhAOGUvKF2OB1sLdWjqDm7gKWLiADm/NCa9ZknUUK3S5Ns"}]},"directories":{}},"0.2.4":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.2.4","author":{"name":"Charlie Robbins","email":"charlie.robbins@gmail.com"},"repository":{"type":"git","url":"git://github.com/indexzero/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"request":"2.x.x","vows":"0.5.x"},"devDependencies":{"journey":">= 0.4.0-pre-2"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmJsonOpts":{"file":"/Users/Charlie/.npm/api-easy/0.2.4/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"api-easy@0.2.4","_engineSupported":true,"_npmVersion":"1.0.23","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"2ad1ddcef47ca0ef8b423eb28d4b29644963e5f3","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.2.4.tgz","integrity":"sha512-exdA9Hu8F/U8VCmvWgYCUbhSFiNGZMHh3Y97F9UuW/m85qYIbmA4yDYFQPjWqXe7DwXAEm38V8FNyH6+py2GAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDteTa6prvM+8PIBOHNkTiISCN4VihRPv+e+hLZM72RTQIhAMfV66Ty6Be/LOJ5RKupKoI5jVbt9X0kjG33CKGDSWNq"}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.0":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.0","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.5.x"},"devDependencies":{"journey":">= 0.4.0-pre-2","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.0","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"c386fb47b6ffd086a5a8a3689c60758ba62cb5bf","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.0.tgz","integrity":"sha512-IvAW2YCl/y97l2y1JXJoleuhKlHIxuDKuaHXbXDTYvLT+8evGUNTZKu4CDffqE8Db0sryA8Ls/A2V+imLLsfFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLFgeK3Q1TK8Q2lL6t8+fCi1F4ORUAI9qc/FgKSp4f8gIgY8sePVdPJVr3+dN9LN0Fi5wH+zK9F6gSmTAd9Adbizg="}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.1":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.1","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.5.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.1","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"2a9e663341289b3539b822ddf9f494f572879803","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.1.tgz","integrity":"sha512-7vsaJBl6pna/jkpYvky7bpAekMTcWazELYRK+i6lvbuUUDISsf+n/r2XwK206oSsvo8xo/+QVfpTZ9qORUfr/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCq3dZ1FxSZVJg4DP5CLHzSKY5T1h11UzDwVmKNsetmkQIgNRHBnvIg9cBmIlC2jWHSp8AH0EjU0iymQA8E+66/RZE="}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.2":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.2","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.2","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"91013ae6dcac54484400970f92a7c1d75a0c0323","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.2.tgz","integrity":"sha512-8ovJIyUuHvQNLvMO14oL1aOnhrEVP3Jcu38VVi1Modz4bDdSkuV4oKyYYOjEu/b99ZiIIICNcsh8JQsoikvKtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEBv2nJCqXAVgILN5sTB5ddM0U8vndZbx8DsfoJOjTKwIgdca7WEg2UwUrOi+szDoSQuKDA81YiQBpdNhCKTkCywA="}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.3":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.3","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-2","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"0d98a953c1ef9334f229296ba67c32f77326e1d0","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.3.tgz","integrity":"sha512-pea43BEDzR3ljllkL3gQJZtCZB2p1n5U973YxmOjvYQlQV+CEzTiA5hBu/VEXSNUlI2KzW3MQ4Fzu/D2XPNmxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHUrlzDCJSa3m81o11JaptoBvQON0rCQ+AMZQnoGHe09AiEAoza8a0aO/VjupXEkmQ8MvYi5vr3eoY76hndn9q6+108="}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.4":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.4","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"contributors":[{"name":"Charlie Robbins","email":"charlie@nodejitsu.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x","qs":"0.4.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.4","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"f8d41e7ba670b3644345ff9c52cf09e6d16495bd","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.4.tgz","integrity":"sha512-2FlxXNFH+ltqfI5/F7meptZijkXkcFU2+lSqDQe5S9j5R8rXQhgbJSGVM2bsdvL5I5plVm1+kzo3QXZazQQ2XQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+qcelFaprua6biFjUPJg6g9cvsZZEcT2+udViAjQWEAiEAo6pXL4dHP4zExQyMX9QSD0qWqwdexgReyUQaxQYcM9g="}]},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}]},"0.3.5":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.5","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x","qs":"0.4.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.5","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"7e06e8d880e58a8df981a70ec05cf50d3e096b55","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.5.tgz","integrity":"sha512-jUqV5ZsYj9q/t4w55dRhS7+H1/b4LYh+okMK5JCYNcMqBhGN1Iyz3+FbLRkpwNDG36O7ciwDd0HpFlnueUmvRg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOMYaLdNwVQ0p/VHOUMmrYXGyWZGX5+QffPUdoEa/tkQIhAJ//cFiTzV6EkRZ2b+dQdt5G7KiSEJDPd5lARzLByAag"}]}},"0.3.6":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.6","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x","qs":"0.4.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.6","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"e1639fc5980a7691fd4f035a12776848145588e3","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.6.tgz","integrity":"sha512-zckI6LP4e8f2vjEvpl8grjKbuLMktdxHighbyfY/5uxx/XnMh/uXnbqE0wlWILvgJCLvDo61SCpJzoH/oGF/3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8OZMHmswoZNxU5RvBtILgflhVba0G4HaOOFc0rPRnoAiAqfqL7YRBGmgGqNeleAkVNYhh8wAnqxQNjECb4hALSTg=="}]}},"0.3.7":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.7","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"repository":{"type":"git","url":"git://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.2.x","request":"2.x.x","vows":"0.6.x","qs":"0.5.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"_id":"api-easy@0.3.7","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.2","_nodeVersion":"v0.8.1","_defaultsLoaded":true,"dist":{"shasum":"924ac4f68ff63d19a2787918b9f768fc7d8cba4e","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.7.tgz","integrity":"sha512-+rvqmBptS7Mp1kCdtNTtTYB9SRo8FrGVamO7J7ZYwX74JCIF1O7Trc467t8OU4ZHkyoGmLTsPbyYnIMvEfNfJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZKaW5y3HdPhngU5aInt7j6ThVLj3yG7HljdSP5oYXYQIhAJhhiZ9ntHjuZecUMcXliGxwWOmxZbcPkDp/imKBnpWL"}]}},"0.3.8":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.3.8","author":{"name":"Nodejitsu Inc.","email":"info@nodejitsu.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"repository":{"type":"git","url":"http://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"pkginfo":"0.3.x","request":"2.x.x","vows":"0.7.x","qs":"0.5.x"},"devDependencies":{"director":"~1.0.3","formidable":"1.0.2","mkdirp":"0.2.x"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.4.3"},"_id":"api-easy@0.3.8","dist":{"shasum":"324b554fa4106e8e8d8ce01989042b072a0b708c","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.3.8.tgz","integrity":"sha512-Frwy+WODJlxcxWRdz42+eQULymNEiHYxhZ5DyDj1G+l73jU5SKB06J2RA0LwuLY4JbK56tXuPkVsIUV/TNtm9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbXu/YX/9egFWKwHHhGqDXCq+jlrnSTu/tK7exCcqMLQIgMwQne6SB0rJriFp9VxtNEIZ2/vxDLshL5k4Dp9UXSuQ="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"}},"0.4.0":{"name":"api-easy","description":"Fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.","version":"0.4.0","author":{"name":"Charlie Robbins","email":"charlie.robbins@gmail.com"},"repository":{"type":"git","url":"http://github.com/flatiron/api-easy.git"},"keywords":["testing","api","REST","vows"],"dependencies":{"request":"2.x.x","vows":"0.8.x","qs":"~2.3.3"},"devDependencies":{"director":"~1.2.3","formidable":"~1.0.15","mkdirp":"~0.5.0"},"main":"./lib/api-easy","scripts":{"test":"vows test/*-test.js --spec"},"engines":{"node":">= 0.8.0"},"gitHead":"706aa821dcf29f5daef908eca797ea35b9f63bfc","bugs":{"url":"https://github.com/flatiron/api-easy/issues"},"homepage":"https://github.com/flatiron/api-easy","_id":"api-easy@0.4.0","_shasum":"8ca2cb1ff76dc67916e83507daa6c50959e716ef","_from":".","_npmVersion":"2.1.9","_nodeVersion":"0.10.33","_npmUser":{"name":"indexzero","email":"charlie.robbins@gmail.com"},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"dist":{"shasum":"8ca2cb1ff76dc67916e83507daa6c50959e716ef","tarball":"https://registry.npmjs.org/api-easy/-/api-easy-0.4.0.tgz","integrity":"sha512-0Rh8tN5Sc2QT1k5G214f4t9icYFZQXAMjG5M3ieK5zo+QIrFYIvtehtWKxt6YLPuMEviHYZ+sSO7ma+58aKaDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB4gLpJZ8pUU15miaWM1r+rH76vK+SNdVEUeJy38uANrAiBLiDPdWFPv86HbcJojokfsBUUIHKhEONw9la2Q+iaDYw=="}]}}},"maintainers":[{"name":"indexzero","email":"charlie.robbins@gmail.com"}],"time":{"modified":"2022-06-13T03:11:53.061Z","created":"2011-04-18T03:15:00.507Z","0.2.0":"2011-04-18T03:15:00.666Z","0.2.1":"2011-05-25T05:38:09.272Z","0.2.2":"2011-06-11T21:08:29.997Z","0.2.3":"2011-06-11T21:17:18.608Z","0.2.4":"2011-10-03T22:57:04.356Z","0.3.0":"2011-11-24T03:37:31.158Z","0.3.1":"2011-11-24T04:46:15.441Z","0.3.2":"2011-12-08T23:43:37.456Z","0.3.3":"2012-02-11T06:19:38.237Z","0.3.4":"2012-03-12T22:07:46.910Z","0.3.5":"2012-06-07T01:32:02.121Z","0.3.6":"2012-06-27T04:22:52.446Z","0.3.7":"2012-07-24T20:13:48.000Z","0.3.8":"2013-04-21T06:17:18.380Z","0.4.0":"2014-12-06T06:52:32.936Z"},"author":{"name":"Charlie Robbins","email":"charlie.robbins@gmail.com"},"repository":{"type":"git","url":"http://github.com/flatiron/api-easy.git"},"users":{"fgribreau":true,"mstapp":true,"jhford":true,"nohponex":true,"stonecypher":true},"readme":"# APIeasy [![Build Status](https://secure.travis-ci.org/flatiron/api-easy.png)](http://travis-ci.org/flatiron/api-easy)\n\nA fluent (i.e. chainable) syntax for generating vows tests against RESTful APIs.\n\n## Installation\n\n### Installing npm (node package manager)\n``` bash\n  $ curl http://npmjs.org/install.sh | sh\n```\n\n### Installing APIeasy\n``` bash\n  $ [sudo] npm install api-easy\n```\n\n## Purpose\nAPIeasy is designed to be a simple way to test RESTful APIs in [node.js][0] and Javascript. The primary design goal was to reduce the number of lines of test code required to fully cover all primary and edge use cases of a given API over HTTP.\n\n## Getting Started\nMost of the documentation for this library is available through the [annotated source code, available here][1] thanks to [jashkenas][2] and [docco][3]. If you're not feeling up for that, just keep reading here. tldr;? [Read how to use APIeasy in your own projects][4]\n\nIf you're going to use APIeasy (and I hope you do), it's worth taking a moment to understand the way that [vows][5] manages flow control. Read up here on [vowsjs.org][5] (Under \"Structure of a test suite\"), or just remember vows uses this grammatical structure:\n\n```\n  Suite   → Batch*\n  Batch   → Context*\n  Context → Topic? Vow* Context*\n```\n\nGot it? Good. There is a 1-to-1 relationship between a APIeasy suite and a vows suite; APIeasy is essentially a simpler syntax to manage a particular set of vows-based tests that conform to this pattern:\n\n1. Tests are performed by making HTTP requests against an API server\n2. Assertions are made against the HTTP response and JSON response body\n3. Rinse. Repeat.\n\nHere's a sample of the boilerplate code that APIeasy eliminates:\n\n``` js\n  var request = require('request'),\n      vows = require('vows'),\n      assert = require('assert');\n\n  vows.describe('your/awesome/api').addBatch({\n    \"When using your awesome api\": {\n      \"and your awesome resource\": {\n        \"A POST to /awesome\": {\n          topic: function () {\n            request({\n              uri: 'http://localhost:8080/awesome',\n              method: 'POST',\n              body: JSON.stringify({ test: 'data' }),\n              headers: {\n                'Content-Type': 'application/json'\n              }\n            }, this.callback)\n          },\n          \"should respond with 200\": function (err, res, body) {\n            assert.equal(res.statusCode, 200);\n          },\n          \"should respond with ok\": function (err, res, body) {\n            var result = JSON.parse(body);\n            assert.equal(result.ok, true);\n          },\n          \"should respond with x-test-header\": function (err, res, body) {\n            assert.include(res.headers, 'x-test-header');\n          }\n        }\n      }\n    }\n  }).export(module);\n```\n\nThis same code can be implemented like this using APIeasy:\n\n``` js\n  var APIeasy = require('api-easy'),\n      assert = require('assert');\n\n  var suite = APIeasy.describe('your/awesome/api');\n\n  suite.discuss('When using your awesome API')\n       .discuss('and your awesome resource')\n       .use('localhost', 8080)\n       .setHeader('Content-Type', 'application/json')\n       .post('/awesome', { test: 'data' })\n         .expect(200, { ok: true })\n         .expect('should respond with x-test-header', function (err, res, body) {\n           assert.include(res.headers, 'x-test-header');\n         })\n       .export(module);\n```\n\n<a name=\"using-api-easy\">\n## Using APIeasy in your own project\nThere are two ways to use APIeasy in your own project:\n\n1. Using npm\n2. Using vows directly\n\n### Using APIeasy with npm\nIf you've used the `npm test` command in [npm][7] before, this should be nothing new. You can read more about the [npm test command here][8]. All you need to do is add the following to your `package.json` file:\n\n``` js\n {\n   \"dependencies\": {\n     \"api-easy\": \"0.2.x\"\n   },\n   \"scripts\": {\n     \"test\": \"vows test/*-test.js\"\n   }\n }\n```\n\n**Note:** `test/*-test.js` is at your discretion. It's just an expression for all test files in your project.\n\nAfter adding this to your `package.json` file you can run the following to execute your tests:\n\n``` bash\n  $ cd path/to/your/project\n  $ npm install\n  $ npm test\n```\n\nThere is also a full working sample of how to use this approach [here][9].\n\n### Using APIeasy with vows\nWhen you install APIeasy or take it as a dependency in your `package.json` file it will not install [vows][5] globally, so to use vows you must install it globally.\n\n``` bash\n  $ [sudo] npm install vows -g\n```\n\nAfter installing vows you can simply run it from inside your project:\n\n``` bash\n  $ cd /path/to/your/project\n  $ vows\n```\n\n## Roadmap\n\n1. [Get feedback][6] on what else could be exposed through this library.\n2. Improve it.\n3. Repeat (1) + (2).\n\n## Run Tests\n<pre>\n  npm test\n</pre>\n\n#### Author: [Charlie Robbins](http://nodejitsu.com)\n\n[0]: http://nodejs.org\n[1]: http://flatiron.github.com/api-easy\n[2]: http://github.com/jashkenas\n[3]: http://github.com/jashkenas/docco\n[4]: #using-api-easy\n[5]: http://vowsjs.org\n[6]: http://github.com/flatiron/api-easy/issues\n[7]: http://npmjs.org\n[8]: https://github.com/isaacs/npm/blob/master/doc/cli/npm-test.md\n[9]: https://gist.github.com/1039425\n","homepage":"https://github.com/flatiron/api-easy","keywords":["testing","api","REST","vows"],"bugs":{"url":"https://github.com/flatiron/api-easy/issues"},"readmeFilename":"README.md"}