1.0.0 • Published 5 years ago
@repercept/api-response v1.0.0
API Response
Install
npm install --save @repercept/api-response
Getting Started
Success response
const APIResponse = require('@repercept/api-response')
let apiResp = new APIResponse()
APIResponse.data = {"status": "ok"}
apiResp.serialize() // {"item": {"status": "ok"}}
APIResponse.data = [{"id": 1}, {"id": 2}]
apiResp.serialize() // {"items": [{"id": 1}, {"id": 2}]}
Error response
const APIResponse = require('@repercept/api-response')
let apiResp = new APIResponse()
let err = new Error()
APIResponse.addError(err)
apiResp.serialize() // {"errors": [{code: "UNKNOWN", message: "detailed stack trace...."}]}
Add customized error
let apiResp = new APIResponse()
APIResponse.addError({code: "BAD_REQUEST", message: "bad request"})
apiResp.serialize() // {"errors": [{code: "BAD_REQUEST", message: "bad request"}]}
AWS API Gateway Response
const APIResponse = require('@repercept/api-response')
let apiResp = new APIResponse()
APIResponse.data = {"status": "ok"}
apiResp.apiGateway().serialize(200, {"accept": "appliation/json"})
// {statusCode: 200, body: "{\"status\": \"ok\"}", headers: {"accept": "appliation/json"}}
If you want to return html content
const APIResponse = require('@repercept/api-response')
let apiResp = new APIResponse()
APIResponse.data = "<html>"
apiResp.apiGateway().serialize(200, {"Content-Type": "text/html"})
// {statusCode: 200, body: "<html>", headers: {"accept": "appliation/json"}}
API Reference
Classes
Typedefs
APIResponse
Class APIResponse constructor
Kind: global class
apiResponse.addError(err) ⇒ APIResponse
Add an error object to the api response
Kind: instance method of APIResponse
Param | Type | Description |
---|---|---|
err | Error | APIError | The handcrafted error object or nodejs native Error object |
apiResponse.apiGateway() ⇒ APIGatewayResponse
returns an instance of APIGatewayResponse
Kind: instance method of APIResponse
apiResponse.serialize() ⇒ APIErrorResponse | APISuccessListResponse | APISuccessResponse
serialize the api response to a json object
Kind: instance method of APIResponse
APIGatewayResponse
Class APIGatewayResponse constructor
Kind: global class
new APIGatewayResponse(apiResponse)
Param | Type |
---|---|
apiResponse | APIResponse |
apiGatewayResponse.serialize(statusCode, headers)
serialize the api response to a json object which will be used by AWS API Gateway
Kind: instance method of APIGatewayResponse
Param | Type |
---|---|
statusCode | number |
headers | Object |
APIError : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
code | string | The code of the error |
message | string | The description of the error |
APISuccessListResponse : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
items | Array | A list of items to return |
APISuccessResponse : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
item | Object | An item to return |
APIErrorResponse : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
errors | Array | Contains a list of API Errors |