@superlogica/super-http-client-js
TypeScript icon, indicating that this package has built-in type declarations

2.0.6 • Public • Published

Super Http Client JS

Super Http Client JS

What is Super Http Client?

Http Client lib for Node.js & TypeScript developed by Superlógica Tecnologias S.A

Getting started

To install the lib just run the command:

npm install @superlogica/super-http-client-js

Ready!

Now you can use the available interfaces and the adapter.

How Works?

The most basic possible use is to import default (adapter) and use it, as in the following example:

import SuperHttpClient from '@superlogica/super-http-client-js'

async function getAllCharacters() {
  const superHttpClient = new SuperHttpClient({
    baseURL: 'https://rickandmortyapi.com/api'
  })

  const characters = await superHttpClient.get({
    url: '/character'
  })

  return characters
}

You can also make named imports to use interfaces, that is, abstractions instead of injecting concrete classes, as in the following example:

First of all, it is possible to create a type to define what the response will be, for example, of a get request.

// characters-dto.ts

export type Info = {
  count: number
  pages: number
  next: string
  prev?: string
}

export type Character = {
  id: number
  name: string
  status: 'alive' | 'dead' | 'unknown'
  species: string
  type: string
  gender: 'male' | 'female' | 'genderless'
  origin: {
    name: string
    url: string
  }
  location: {
    name: string
    url: string
  }
  image: string
  episode: string[]
  url: string
  created: Date
}

Let's create a simple use case that basically lists all characters for a given API. For this, we will use the existing abstraction in the @superlogica/super-http-client-js lib, which is HttpGetClient

Note that when calling the get method, a parameter is passed to indicate the method's response type.

// get-all-characters-use-case.ts

import { HttpGetClient } from '@superlogica/super-http-client-js'

import { Info, Character } from './characters-dto'

export type Response = Info & Character

export class GetAllCharactersUseCase {

  // abstract dependency
  constructor(private readonly getCharacters: HttpGetClient) {}

  async execute() {
    return this.getCharacters.get<Response>({
      url: '/character'
    })
  }
}

Finally, in index file, for example, you can create a lib instance to inject the dependency into the use case constructor

// index.ts

const superHttpClient = new SuperHttpClientAdapter({
  baseURL: 'https://rickandmortyapi.com/api'
})

// inject dependency
const getAllCharactersUseCase = new GetAllCharactersUseCase(superHttpClient)

getAllCharactersUseCase.execute().then((response) => {
  console.log(response)
})

Readme

Keywords

Package Sidebar

Install

npm i @superlogica/super-http-client-js

Weekly Downloads

88

Version

2.0.6

License

ISC

Unpacked Size

178 kB

Total Files

103

Last publish

Collaborators

  • murilosuperlogica
  • ennio.octavio
  • g-portugues
  • matheus.leal
  • mdpbaptista10
  • henriquebava
  • diogorighisl
  • jhonatas.superlogica
  • wilsinprado