carbon-http
TypeScript icon, indicating that this package has built-in type declarations

2.1.2 • Public • Published

Carbon HTTP

workflow workflow

Carbon HTTP is a user-friendly HTTP(s) library designed specifically for Node.js, developed in TypeScript and subsequently converted to JavaScript. Carbon HTTP serves as an excellent alternative to libraries such as node-fetch, request-promise, and similar options.

Motivation

A limited number of libraries are offered for this purpose, with the majority created for both the Browser API and Node runtime. The existence of libraries that attempt to serve the requirements of both the Browser and Node APIs can result in significant challenges for enterprise-level applications. For instance, mandatory updates triggered by security flaws in different dependencies of the library can pose problems. In comparison, Carbon HTTP is independent of third-party dependencies and has been developed and maintained in the UK by a Limited Company.

Quickstart Guide

First you need to install the Carbon HTTP Library for node.js ecosystem via npm or yarn package management.

NPM:

npm i carbon-http

YARN:

yarn add carbon-http

How to use

Simple Answer is it's very easy to use. You can find a few examples below for most commonly used Methods: GET, POST, and DELETE below.

Module Import

ES5

const { Request } = require('carbon-http')

ES6+ & TypeScript

import { Request } from 'carbon-http'

Request Example (GET)

import { Request } from 'carbon-http';

const resp = await Request('https://api.syniol.com/v2/user/hadi/history');

console.log(resp.json())

// prints
{
  username: 'hadi'
  joinDate: '2020-02-19'
  lastLoginDate: '2021-09-21'
}

Request Example (POST)

import { Request, HttpMethod } from 'carbon-http';

const resp = await Request(
  'https://api.syniol.com/v2/user',
  {
    method: HttpMethod.POST,
    body: JSON.stringify({
      username: 'myusername',
      email: 'myemail@email.com',
      password: 'myPassword',
    }),
  }
);

console.log(resp.json())

// prints
{
  status: 'success'
}

Request Example (DELETE)

import { Request, HttpMethod } from 'carbon-http';

const resp = await Request(
  'https://api.syniol.com/v2/user/hadi/history/73',
  {
    method: HttpMethod.DELETE,
  }
);

Response

Response from Promise Request, has the following APIs available:

status            // example 200
headers           // example { "accept-ranges": "bytes", "... }
incomingMessage:  // example { "httpVersion": "1.1", "...} 

text()            // example '<html><header>....</html>'
json()            // example { status: "Success" }

In TypeScript since the version 2.1.x, you can define the response type as a generic on json() method.

interface UserResponse {}

// json<T>(): T
const respBody = json<UserResponse>();

Credits

Copyright © 2022-2025 Syniol Limited. All rights reserved.

Package Sidebar

Install

npm i carbon-http

Weekly Downloads

49

Version

2.1.2

License

Apache-2.0

Unpacked Size

75.6 kB

Total Files

13

Last publish

Collaborators

  • syniol