0.3.5 • Published 7 years ago

ee-rest-headers v0.3.5

Weekly downloads
45
License
-
Repository
github
Last release
7 years ago

#ee-rest-headers

The ee-rest-headers package mainly consists of a parser which parses complex http headers based on the rest header DSL specified in the Joinbox RESTFul Styleguide.

The parser itself is implemented as a PEG. For more information see the Joinbox RESTFul Styleguide and PEG.js. Currently the parser seems to be a little slow.

##Middleware The package exposes a middleware to be used with ee-webservices. The middleware modifies the http request (@see: ee-webserver) by wrapping the getHeader(key, parsed) method. Parseable headers will be parsed and cached in a LRU cache.

##Parser The following headers are specified in the aforementioned styleguide.

###Select Models a projection on the fields of the queried resource. If all fields should be selected the wilcard should be set.

GET /user HTTP/1.1
Select: id, name, tenant.id, tenant.name, friend.name, friend.id

Selections support wildcards, marked by an asterisk

GET /user HTTP/1.1
Select: id, name, friend.*

###Filter Filters allow to restrict queries on collections and consist of a list of comparisons.

GET /user HTTP/1.1
Filter: id=in(3,4), firstName=like('mich%25')

###Order Allows sorting of the returned collections in ASC(ending) or DESC(ending) order.

GET /user HTTP/1.1
Order: name, friends.name DESC

###Misc

Dates

The parser supports dates and datetimes (possible ambiguity with number!!)

Filter: created=2013-11-18 
Filter: created!=2013-11-18
Filter: created>=2013-11-18 20:00:02
Filter: created<=2013-11-18
Filter: created>2013-11-18
Filter: created<2013-11-18
Filter: created=in(2013,2014)
Filter: created=null
Filter: created=notNull

####Expressions The parser supports a minimal expression syntax for comparison. The parser does not do any type checking! Furthermore, future versions may have to care about the difference between an assignment and a comparison.

Filter: id=1
Filter: id!=1
Filter: id>=1
Filter: id<=1
Filter: id>1
Filter: id<1
Filter: id=in(1,2,3,4)
Filter: id=null

####Values The parser supports a variety of different value types:

  1. integers
  2. floats
  3. function calls
  4. booleans
  5. arrays
  6. variables (and nested variable accesses)

###Full Grammar Please find the full grammar in `lib/parser/_HeaderParser.pegjs'

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.1

9 years ago

0.2.5

9 years ago

0.3.0

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.1.2

9 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago