nui_web 0.0.26 nui_web: ^0.0.26 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 headers
HttpHeaderSetter
N 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 handler
HttpAdditionalHandler
N A callback to handle the response delay
Duration
Y 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 url
String
N The targetted url (This is appended to the base URL if specified) headers
Map<String, String>
Y Specific headers for this HTTP request, common headers are included pathVariable
String
Y Path variable if any params
Map<String, String>
Y Request parameters if any entity
NUIEntMapper
Y 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 url
String
N The targetted url (This is appended to the base URL if specified) headers
Map<String, String>
Y Specific headers for this HTTP request, common headers are included pathVariable
String
Y Path variable if any body
Map<String, dynamic>
Y Request body in map if any bodyEnt
extends NUIEnt
Y Request body in object format if any entity
NUIEntMapper
Y Then entity object to decode the response body encoding
Encoding
Y 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 url
String
N The targetted url (This is appended to the base URL if specified) headers
Map<String, String>
Y Specific headers for this HTTP request, common headers are included pathVariable
String
Y Path variable if any body
Map<String, dynamic>
Y Request body in map if any bodyEnt
extends NUIEnt
Y Request body in object format if any entity
NUIEntMapper
Y Then entity object to decode the response body encoding
Encoding
Y 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 url
String
N The targetted url (This is appended to the base URL if specified) headers
Map<String, String>
Y Specific headers for this HTTP request, common headers are included pathVariable
String
Y Path variable if any body
Map<String, dynamic>
Y Request body in map if any bodyEnt
extends NUIEnt
Y Request body in object format if any entity
NUIEntMapper
Y Then entity object to decode the response body encoding
Encoding
Y 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 url
String
N The targetted url (This is appended to the base URL if specified) headers
Map<String, String>
Y Specific headers for this HTTP request, common headers are included pathVariable
String
Y Path variable if any entity
NUIEntMapper
Y Then entity object to decode the response body encoding
Encoding
Y Encoding type for the request
Example of a DELETE method #
final deleteResult = NUIWeb.get(module: "app").doDELETE(url: "cases", pathVariable: "1002");