react-json-api-client
v1.5.1
Published
React HTTP Client specially for JSON Apis
Downloads
76
Maintainers
Readme
react-json-api-client
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: '[email protected]',
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