Awesome
JsonApi Client
Client framework for consuming JSONAPI web services based on the JSON API standard
:package: Installation
jsonapi-consumer is available on NuGet.
dotnet add package jsonapi-consumer
🚀 Usage
Create HttpGet request with single response object
Response<User[]> response = JsonApiConsumer.Get<User>(
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
query: new Dictionary<string, string>() { { "FirstName", "Oktay" }, { "LastName", "Kır" } },
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Create HttpGet request with array response object
Response<User> response = JsonApiConsumer.GetById<User>(
id: "c833cbbf-7c81-4d30-b11a-88cf1c990b9c",
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
query: new Dictionary<string, string>() { { "FirstName", "Oktay" }, { "LastName", "Kır" } },
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Create HttpPost request
var user = new User()
{
id = "c833cbbf-7c81-4d30-b11a-88cf1c990b9c";
FirstName = "Oktay";
LastName="Kır";
}
Response<CreateUserResponse> response = JsonApiConsumer.Create<User, CreateUserResponse>(
model: user,
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Post a file
Response<PostFileResponse> response = JsonApiConsumer.PostFile<PostFileResponse>(
fileName: "filename",
data: new byte[],
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Create HttpPut request
var user = new User()
{
FirstName = "Oktay";
LastName="Kır";
}
Response<UpdateUserResponse> response = JsonApiConsumer.Update<User, UpdateUserResponse>(
id: "c833cbbf-7c81-4d30-b11a-88cf1c990b9c",
model: user,
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Create HttpPatch request
var user = new User()
{
FirstName = "CC";
}
Response<PatchUserResponse> response = JsonApiConsumer.Patch<User, PatchUserResponse>(
id: "c833cbbf-7c81-4d30-b11a-88cf1c990b9c",
model: user,
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Create HttpDelete request
Response<DeleteUserResponse> response = JsonApiConsumer.Delete<DeleteUserResponse>(
id: "c833cbbf-7c81-4d30-b11a-88cf1c990b9c",
baseURI: ABSOLUTE_URL,
path: RELATIVE_URI,
headers: new Dictionary<string, string>() { { HEADER_API_KEY, HEADER_API_KEY_VALUE } } );
Response class definition
public class Response<T>
{
public DocumentRoot<T> documentRoot { get; internal set; }
public HttpStatusCode httpStatusCode { get; internal set; }
public Error error { get; set; }
public bool IsSuccess { get; internal set; }
}
✨ Contributors
🤝 Contributing
- Fork it ( https://github.com/OKTAYKIR/jsonapi-consumer/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Show your support
Please ⭐️ this repository if this project helped you!
📝 License
MIT License