api-response-utils
v1.0.1
Published
The api-response-utils package streamlines RESTful API data exchange by introducing a standardized data structure for HTTP response bodies. This structure simplifies client-side data handling, promoting consistency and readability in your API interactions
Downloads
137
Maintainers
Readme
API Response Utils
The api-response-utils
package streamlines RESTful API data exchange by introducing a standardized data structure for HTTP response bodies. This structure simplifies client-side data handling, promoting consistency and readability in your API interactions.
Getting Started
Install the package:
npm install -S api-response-utils
Examples
Building a successful response:
import { buildResponse } from 'api-response-utils';
buildResponse();
// {
// success: true,
// data: undefined,
// error: undefined
// }
// building a successful response w/ data:
buildResponse({ id: 1, nickname: 'Jane Doe' });
// {
// success: true,
// data: { id: 1, nickname: 'Jane Doe' },
// error: undefined
// }
Building an unsuccessful response:
import { buildResponse } from 'api-response-utils';
buildResponse(undefined, new Error('The user was not found in the db.'));
// {
// success: false,
// data: undefined,
// error: 'The user was not found in the db.'
// }
Checking if a value is a response object:
import { isResponse } from 'api-response-utils';
isResponse({
success: true,
data: { id: 1, nickname: 'Jane Doe' },
error: undefined,
});
// true
isResponse({ foo: 'bar' });
// false
Types
/**
* API Response
* The response object that is sent to the client via the HTTP body.
*/
interface IAPIResponse {
// a response is considered to be successful if error === undefined
success: boolean,
// the data that will be sent to the client (regardless of the request's outcome)
data: any,
// the error thrown during the handling of the request (if any)
error: string | undefined
}
Built With
- TypeScript
Running the Tests
npm run test:unit
License
Deployment
Install dependencies:
npm install
Build the library:
npm start
Publish to npm
:
npm publish