4.2.2 • Published 5 months ago

@superlogica/super-http-client-js v4.2.2

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

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)
})
4.2.2

5 months ago

4.1.3

6 months ago

4.0.4

7 months ago

4.1.0

6 months ago

4.2.1

5 months ago

4.1.2

6 months ago

4.2.0

6 months ago

4.1.1

6 months ago

4.0.3

8 months ago

4.0.2

8 months ago

3.0.4

11 months ago

3.0.3

11 months ago

3.0.2

12 months ago

3.0.1

12 months ago

3.0.5

11 months ago

3.0.0

1 year ago

4.0.1

11 months ago

4.0.0

11 months ago

2.0.5

1 year ago

2.0.6

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

1.3.0

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

1.2.0

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.0

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago