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

MethodRemark
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

MethodRemark
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");

Libraries

nui_connection
nui_web
nui_web_models