angular-fullstack/generator-angular-fullstack

API query parameters

Open

#358 opened on Jul 16, 2014

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (6,134 stars) (1,268 forks)batch import
Help Wantedenhancementmajor

Description

To control api we are use:

Comparison Query Operators

EQ

  • url: /api/item?name=test
    • name: 'test'
  • url: /api/item?name.second=test
    • "name.second": 'test'

NEQ

  • url: /api/item?name=!test
    • name: $ne: 'test'

GT

  • url: /api/item?name=>1
    • name: $gt: 1

GTE

  • url: /api/item?name=]1
    • name: $gte: 1

LT

  • url: /api/item?name=<1
    • name: $lt: 1

LTE

  • url: /api/item?name=[1
    • name: $lte: 1

IN

  • url: /api/item?name=@1|2|3
    • name: $in: ['1','2','3']

NIN

  • url: /api/item?name=#1|2|3
    • name: $nin: ['1','2','3']

Evaluation Query Operators

REGEX

  • url: /api/item?name=~test
    • name: $regex: 'test'

Sort

  • /api/item?order=name
  • /api/item?order=-name

Limit

  • /api/item?limit=25&skip=0

We make simple module to convert resp.query to "mongose model find"

https://github.com/alexsuslov/wcQuery

Simple use in server api controller:

"use strict"

_ = require("lodash")
Item = require("./item.model")
Query = require("wc-query")
fields = {}

# Get list of items
exports.index = (req, res) ->
  query = Query(req.query)
  Item.find query.conditions, fields, query.options, (err, items) ->
    throw err if err
    return handleError(res, err)  if err
    res.json 200, items

BRGD Alex

Contributor guide