1.0.0 • Published 5 years ago

@repercept/api-response v1.0.0

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

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

ParamTypeDescription
errError | APIErrorThe 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)

ParamType
apiResponseAPIResponse

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

ParamType
statusCodenumber
headersObject

APIError : Object

Kind: global typedef
Properties

NameTypeDescription
codestringThe code of the error
messagestringThe description of the error

APISuccessListResponse : Object

Kind: global typedef
Properties

NameTypeDescription
itemsArrayA list of items to return

APISuccessResponse : Object

Kind: global typedef
Properties

NameTypeDescription
itemObjectAn item to return

APIErrorResponse : Object

Kind: global typedef
Properties

NameTypeDescription
errorsArrayContains a list of API Errors
1.0.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago