react-json-api-client
TypeScript icon, indicating that this package has built-in type declarations

1.5.1 • Public • Published

react-json-api-client

npm version npm NPM

Simple package to execute api requests, Right now the package is in beta phase

Installation

yarn add react-json-api-client
# or
npm i -s react-json-api-client

Usage

App.jsx

<ApiClient
    config={{
        endpoints: {
            auth: '/api/v1/my-auth-endpoint',
            nested: {
                foo: '/api/v1/bar'
                withReplace: '/api/v1/user/:id:'
            },
            
        },
        server: 'http://my-server.test'
    }}
>
    {... my app components}

</ApiClient>

MyComponent.jsx

import { useGet, usePost } from 'react-json-api-client'

const MyComponent: React.FC = () => {
    // First position = Promise to execute the request
    // Second position = Boolean with the loading state
    const [sendPost, sending] = usePost('nested.foo')
    // The usePatch, usePut, useDelete works the same way

    // const [sendPost, loading] = usePatch('auth')
    // data: The response data when the request is done
    // loading, boolean with the loading state
    const {data, loading} = useGet('nested.withReplace', {
        id: 2
    })
    
    // useGet can be lazy, just send the lazy flag after the configs
    const [sendRequest, loading] = useGet('path', {}, true)

    const handleAuth = async () => {
        try {
            const response = await sendPost({
                // The body
                data: {
                    email: 'my-email@gmail.com',
                    password: '1234567'
                }   
            })
            console.log(response.data)
        } catch (e) {
            // handle your error
        }
    }
    return (
        <>
        </>
    )
}

Todo V1.0.0

  • [x] Api client context
  • [x] Api hooks: useGet, usePost, usePatch, useDelete, usePut
  • [x] Replace params in url
  • [x] Api configuration hook
  • [x] Allow render Requests log
  • [x] Allow authentication (JWT)

Todo V1.2.0

  • [ ] Support for filters in url following the JSON Spect
  • [ ] Support for related records in url following the JSON Spect

Todo Version 2.0.0

  • [ ] Add JSON API schemas

Package Sidebar

Install

npm i react-json-api-client

Weekly Downloads

30

Version

1.5.1

License

MIT

Unpacked Size

168 kB

Total Files

51

Last publish

Collaborators

  • alejandro.devop