Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

resource-action-api

Package Overview
Dependencies
Maintainers
0
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

resource-action-api

Requests to `/resources` must have a body that has the following format:

  • 2.1.45
  • latest
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

POST /resources

Requests to /resources must have a body that has the following format:

{
  [actionKey]: {
    [resourceKey]: <params|[params]>,
    ...
  },
  ...
}

actionKey:

  • get - request data for resource(s)
  • create - create resource(s)
  • update - update resource(s)
  • destroy - delete resource(s)

resourceKey:

  • there are many resourceKeys, such as products and projects.
  • resourceKeys can be:
    • singular, like product, in which case it is considered a one request (which has one corresponding result)
    • plural
  • usually the value of a resourceKey will be an object - params
  • occasionally, the value of a resourceKey will be an array of params objects - [params, ...]
parambehaviorvalue formatworks with
whereWHERE field = value AND ...{<field>:<value>}get, update, destroy
propsSET field = value{<field>:<value>}create, update
fieldsSELECT field, ...[<field>]get
orderORDER BY field, ...`[<field{field, direction}>]`
includeinclude related resources{<resourceKey>: <params>>get
limitLIMIT Xintget
pageLIMIT X, Y{count: int, number: int}get

where

default behavior: AND - {where: {id: 1, type: 2}} -> WHERE id = 1 AND type = 2

to achieve more complex where statements, the following syntax may be used (TODO):

{where: ['and', ['or', {productId: 1, materialId: 2}], {type: 'image'}]}

  • recursively apply middleware? using pseudo field?

Responses

Responses come back in a format that corresponds to the request:

{success: true, data: {
  [actionKey]: {
    [singular resourceKey]: {props: {}}
    [plural   resourceKey]: [{props: {}}]
  }
}}

resource:

  • an object of the format {props: {}}
  • only get, and create respond with resources, so data.resources will never have the keys update or destroy

Example request and response:

var request = {
  get: {
    project: {where: {id: 1}},
    products: {where: {categoryId: 1}, order: ['rank'], fields: ['id', 'title']},
  },
  update: {
    project: {where: {id: 1}, props: {title: 'p1'}},
    projects: {where: {zip: 10000}, props: {title: 'p2'}},
    elevations: [{where: {id: 1}, props: {title: 'p3'}}, {where: {id: 2}, props: {title: 'p4'}}]
  },
  create: {
    product: {where: {zip: 10000}, props: {title: 'p1'}},
    projects: [{props: {title: 'p1'}}, {props: {title: 'p2'}}]
  },
  destroy: {
    product: {where: {id: 1}},
    projects: {where: {zip: 10000}}
  }
};

var response = {
  resources: {
    get: {
      project: {},
      products: [{}, ...],
    },
    update: {
      project: {},
      projects: [{}, ...],
      elevations: [{}, ...]
    },
    create: {
      product: {},
      projects: [{}, ...]
    },
    destroy: {
      product: {},
      projects: [{}, ...]
    }
  }
}

FAQs

Package last updated on 18 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc