http_simulator
http_simulator library act as backend server, it for development purpose.
Features
- send http GET request
- send http POST request
- act as backend API.
- it have own local storage act like DB.
Installation
with Dart
dart pub add http_simulator
with Flutter
flutter pub add http_simulator
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):
dependencies:
http_simulator: ^1.0.0
DESCRIPTION
in below we will describe the endpoin and the request and response for each enpoint :
User API's:
- Register API : /user/register
// request body Example:
{
"id":1,
"idNumber":"101254654",
"fullName":"Khalid Alshehri",
"dateOfBirth":"2022-10-10",
"email":"demo@email.com",
"mobile":"96650052154"
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/user/register"),
body: requestBody);
// the lib will return HttpStatus = 201 , without response body
- Login API : /user/login
// request body Example :
{
"idNumber":"tom",
"password":"pass@123"
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/user/login"),
body: requestBody);
// the lib will return HttpStatus = 200
// response body Example :
{
"id":1,
"idNumber":"101254654",
"fullName":"Khalid Alshehri",
"dateOfBirth":"2022-10-10",
"email":"demo@email.com",
"mobile":"96650052154",
"tasks":[
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
],
"badge":[
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
]
}
- Add task to user API : /user/task?taskId=#{taskId}
// request body Example :
{
"id":4, // userId
"idNumber":"1051554145",
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/user/task?taskId=#{taskId}"),
body: requestBody);
// the lib will return HttpStatus = 200
// response body Example :
{
"id":1,
"idNumber":"101254654",
"fullName":"Khalid Alshehri",
"dateOfBirth":"2022-10-10",
"email":"demo@email.com",
"mobile":"96650052154",
"tasks":[
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
],
"badge":[
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
]
}
- Add Badge to user API : /user/badge?badgeId=#{badgeId}
// request body Example :
{
"id":4, // userId
"idNumber":"1051554145",
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/user/badge?badgeId=#{badgeId}"),
body: requestBody);
// the lib will return HttpStatus = 200
// response body Example :
{
"id":1,
"idNumber":"101254654",
"fullName":"Khalid Alshehri",
"dateOfBirth":"2022-10-10",
"email":"demo@email.com",
"mobile":"96650052154",
"tasks":[
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
],
"badge":[
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
]
}
Complaint API's:
- Add complaint API : /complaints
// request body Example:
{
"category":"test",
"title":"test",
"details":"test",
"userId":5,
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/complaints"),
body: requestBody);
// the lib will return HttpStatus = 201 , without response body
- Get list Of User Complaints API : /complaints?userId=#{userId}
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/complaints?userId=#{userId}");
// the lib will return HttpStatus = 200
// response body Example :
[
{
"id":1,
"category":"test",
"title":"test",
"details":"test",
"status":"test",
"userId":5,
"createdAt":"test",
"lastUpdatedAt":"test"
},
{
"id":1,
"category":"test",
"title":"test",
"details":"test",
"status":"test",
"userId":5,
"createdAt":"test",
"lastUpdatedAt":"test"
}
]
- Get Complaint by id API : /complaints/#{complaintId}
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/complaints/#{complaintId}");
// the lib will return HttpStatus = 200
// response body Example :
[
{
"id":1,
"category":"test",
"title":"test",
"details":"test",
"status":"test",
"userId":5,
"createdAt":"test",
"lastUpdatedAt":"test"
}
Task API's:
- Add Task API : /tasks
// request body Example:
{
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/tasks"),
body: requestBody);
// the lib will return HttpStatus = 201 , without response body
- Get list Of Task API : /tasks
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/tasks");
// the lib will return HttpStatus = 200
// response body Example :
[
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
},
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
]
- Get Task by id API : /tasks/#{tasktId}
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/tasks/#{tasktId}");
// the lib will return HttpStatus = 200
// response body Example :
{
"id":1,
"name":"TASK1",
"points":1500,
"description":"TASK 1",
"type":"TASK 1"
}
Badges API's:
- Add badge API : /badges
// request body Example:
{
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/badges"),
body: requestBody);
// the lib will return HttpStatus = 201 , without response body
- Get list Of badges API : /badges
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/badges");
// the lib will return HttpStatus = 200
// response body Example :
[
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
},
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
]
- Get Task by id API : /badges/#{badgeId}
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/badges/#{badgeId}"),
body: requestBody);
// the lib will return HttpStatus = 200
// response body Example :
{
"id":1,
"name":"BADGE1",
"points":1500,
"description":"BADGE1 1",
"type":"BADGE1 1"
}
Offer API's:
- Add Offer API : /offers
// request body Example:
{
"category":"offer",
"title":"offer",
"description":"offer",
"code":"OFFER"
}
HttpRoutingSimulator.post(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/offers"),
body: requestBody);
// the lib will return HttpStatus = 201 , without response body
- Get list Of offers API : /offers/#{category}
HttpRoutingSimulator.get(
Uri.parse(HttpRoutingSimulator.BASE_URL + "/offers/#{category}");
// the lib will return HttpStatus = 200
// response body Example :
[
{
"id":1,
"category":"offer",
"title":"offer",
"description":"offer",
"code":"OFFER"
},
{
"id":1,
"category":"offer",
"title":"offer",
"description":"offer",
"code":"OFFER"
}
]
License
MIT
Libraries
- entity/Badge
- entity/BaseEntity
- entity/Complaint
- entity/Offer
- entity/Task
- entity/User
- HttpRoutingSimulator
- repository/BadgeRepository
- repository/BaseRepository
- repository/ComplaintRepository
- repository/OfferRepository
- repository/RepositoryFacroty
- repository/TaskRepository
- repository/UserRepository
- service/BadgeService
- service/ComplaintService
- service/OfferService
- service/ServiceFactory
- service/TaskService
- service/UserService
- utils/SequenceUtil
- web/BadgeRestController
- web/ComplaintRestController
- web/OfferRestController
- web/TaskRestController
- web/UserRestController