nui_web 1.1.6
nui_web: ^1.1.6 copied to clipboard
A new Flutter package for web/API calling
id: flutter-sdk-nuiweb title: NUIWeb Overview sidebar_label: Overview #
NUIWeb is part of the Flutter SDK that allows you to integrate HTTP calls into the app in a simpler way:
-
Generalized Base URL - Specify the base URL during the builder method for the app and start calling the HTTP methods by only specifying the path
-
Generalized Headers - Specify the common headers and they be auto-injected into all the HTTP calls made throughout the app.
-
Customizable Error Message - All HTTP errors are caught automatically and a standard response with the error code and message are returned. Customize the error messages for different HTTP error codes.
-
Pre/Post HTTP Handling - Add additional processing to the response before and after the HTTP callback is made.
Builder Method for NUIWeb #
| Method | Remark |
|---|---|
module() |
Specify the module of this NUIWeb instance. |
baseURL() |
Specify the base URL of this instance. |
headers() |
Specify the common headers for this instance. |
statusMessages() |
Customize the messages for different HTTP status code. |
preHandler() |
Add additional pre-processing to the response. |
postHandler() |
Add additional post-processing to the response. |
build() |
Build the NUIWeb instance with the specified module. |
Initialize NUIWeb with NUIWebBuilder. #
Create a NUIWebBuilder instance to build NUIWeb instance.
var web = NUIWebBuilder();
Specifying the module for NUIWeb. #
On the builder method, users can specify the module of the NUIWeb instance to have multiple NUIWeb instance for the app.
builder.module("hintv2");
Specifying the base URL for NUIWeb. #
On the builder method, users can specify the base URL of the NUIWeb instance so that this url is used throughout all the HTTP calls for this NUIWeb instance.
builder.module("https://uathintv2.honda.net.my/hint-api/");
Specifying the common headers for NUIWeb. #
On the builder method, users can specify the common headers so that these headers are automatically added to all the HTTP calls for this NUIWeb instance.
builder.headers(() => {
"authorization" : "Bearer aasdjfhajsdfkjhkahs",
});
- Parameters:
Name Type Nullable Remark headersHttpHeaderSetterN A callback to obtain the headers in Map<String, String>format
Specifying customized HTTP code messages. #
On the builder method, users can specify custom messages for different HTTP codes to all the HTTP calls for this NUIWeb instance.
builder.statusMessages({
401: "Oops, you are unauthorized to access this resource",
404: "Oops, the server is temporarily down for maintenance"
});
Adding the Pre/Post-Response Handler #
Users can add a pre-response or post-response handler to handle additional tasks before returning the response in the callback.
builder.preHandler((response) {
//Todo what you want here
});
builder.postHandler((response) {
//Todo what you want here
}, delay: Duration(milliseconds: 500));
- Parameters:
Name Type Nullable Remark handlerHttpAdditionalHandlerN A callback to handle the response delayDurationY The duration of delay for post handler
Build the NUIWeb instance #
Once all the customizations for this NUIWeb is done, building the instance with NUIWebBuilder will return the instance of the NUIWeb.
final web = builder.build();
A Complete Example for Building A NUIWeb Instance #
final web = NUIWebBuilder()
.module("app")
.headers(() => {
"authorization": "Bearer token here",
"x-tenant-id": "My Tenant Id"
})
.baseURL("http://143.192.96.7:8080")
.statusMessages({
404 : "Oops, this page you're looking for is not found",
500: "Oops, seems like something went wrong"
})
.build();
Available Methods for NUIWeb #
| Method | Remark |
|---|---|
get() |
Get the instance of the built NUIWeb instance |
doGET() |
Call a GET method to the path specified |
doPOST() |
Call a POST method to the path specified |
doPATCH() |
Call a PATCH method to the path specified |
doPUT() |
Call a PUT method to the path specified |
doDELETE() |
Call a DELETE method to the path specified |
Getting the NUIWeb Instance #
Users get the built NUIWeb instance for the targetted module.
final web = NUIWeb.get(module: "hintv2")
Calling a GET method #
- Parameters:
Name Type Nullable Remark urlStringN The targetted url (This is appended to the base URL if specified) headersMap<String, String>Y Specific headers for this HTTP request, common headers are included pathVariableStringY Path variable if any paramsMap<String, String>Y Request parameters if any entityNUIEntMapperY Then entity object to decode the response body
Example of a GET method #
final getResult = NUIWeb.get(module: "app").doGET(url: "cases", params: {
"month": 2.toString(),
"year": 2020.toString()
});
Calling a POST method #
- Parameters:
Name Type Nullable Remark urlStringN The targetted url (This is appended to the base URL if specified) headersMap<String, String>Y Specific headers for this HTTP request, common headers are included pathVariableStringY Path variable if any bodyMap<String, dynamic>Y Request body in map if any bodyEntextends NUIEntY Request body in object format if any entityNUIEntMapperY Then entity object to decode the response body encodingEncodingY Encoding type for the request
Example of a POST method #
final postResult = NUIWeb.get(module: "app").doPOST(url: "cases", pathVariable: "1004", body: {
"month": 2.toString(),
"year": 2020.toString()
});
Calling a PUT method #
- Parameters:
Name Type Nullable Remark urlStringN The targetted url (This is appended to the base URL if specified) headersMap<String, String>Y Specific headers for this HTTP request, common headers are included pathVariableStringY Path variable if any bodyMap<String, dynamic>Y Request body in map if any bodyEntextends NUIEntY Request body in object format if any entityNUIEntMapperY Then entity object to decode the response body encodingEncodingY Encoding type for the request
Example of a PUT method #
final putResult = NUIWeb.get(module: "app").doPUT(url: "cases", body: {
"month": 2.toString(),
"year": 2020.toString()
});
Calling a PATCH method #
- Parameters:
Name Type Nullable Remark urlStringN The targetted url (This is appended to the base URL if specified) headersMap<String, String>Y Specific headers for this HTTP request, common headers are included pathVariableStringY Path variable if any bodyMap<String, dynamic>Y Request body in map if any bodyEntextends NUIEntY Request body in object format if any entityNUIEntMapperY Then entity object to decode the response body encodingEncodingY Encoding type for the request
Example of a PATCH method #
final patchResult = NUIWeb.get(module: "app").doPATCH(url: "cases", pathVariable: "1005", body: {
"month": 2.toString(),
"year": 2020.toString()
});
Calling a DELETE method #
- Parameters:
Name Type Nullable Remark urlStringN The targetted url (This is appended to the base URL if specified) headersMap<String, String>Y Specific headers for this HTTP request, common headers are included pathVariableStringY Path variable if any entityNUIEntMapperY Then entity object to decode the response body encodingEncodingY Encoding type for the request
Example of a DELETE method #
final deleteResult = NUIWeb.get(module: "app").doDELETE(url: "cases", pathVariable: "1002");