How to use
- Go to webApi/categories/ directory.
- Create a new file, which will be responsible for some functional requests group to work with API. For example: if you have a lot of similar requests which contain some repeating code, just include them into appropriate category ( 'api/food/manage/{id}/delete', 'api/food/manage/{id}/update' -> foodManage.js).
- Fill each request using an existing template (see 'webApi/categories/account.js' file).
- Then add your created constant name into 'webApi/categories-handler/requests.js'.
- Now you may use new methods in application via special "InvokeName" parameter.
- To edit APi settings use "config/webApiSettings.js" file.
Samples
DOMAIN: http://yourdomain.com/
*** GET. Case #1 ***
// url -> http://yourdomain.com/admin/news/
// request
{ Url: 'admin/news/', CustomOptions: false, Method: 'get', InvokeName: 'getNews' }
// Invoke method.
webApi.getNews([]).success( // ...some actions...
*** GET. Case #2 ***
// url -> http://yourdomain.com/admin/news/3
// Declare request.
{ Url: 'admin/news/', CustomOptions: false, Method: 'get', InvokeName: 'getNewsDetailsById' }
// Invoke method.
webApi.getNewsDetailsById([3]).success( // ...some actions...
*** GET. Case #3 ***
// url -> http://yourdomain.com/admin/news/3/title
// Declare request.
{ Url: 'admin/news/{id}/title', CustomOptions: false, Method: 'get', InvokeName: 'getNewsDetailsById' }
// Invoke method.
webApi.getNewsDetailsById({
url: { id: 3}
}).success( // ...some actions...
*** GET. Case #4 ***
// url -> http://yourdomain.com/admin/news/10?category=sport&period=week
// Declare request.
{ Url: 'admin/news', CustomOptions: false, Method: 'get', InvokeName: 'getNewsDetailsById' }
// Invoke method and specify an appropriate arguments.
webApi.getNewsDetailsById({
before: ['10'],
after: { "category": "sport", "period": "week" }
}).success( // ...some actions...
*** DELETE. Case #1 ***
// url -> http://yourdomain.com/admin/delete-user/10
// Declare request.
{ Url: 'admin/delete-user/{id}', CustomOptions: false, Method: 'delete', InvokeName: 'deleteUser' }
// Invoke method.
webApi.updateUser({
url: { "id": 10 }
}).success( // ...some actions...
*** POST, PUT, UPDATE. Case #1 ***
// url -> http://yourdomain.com/api/login
// model -> { Login: "test", Password: "test1" }
// Declare request.
{ Url: 'api/login', CustomOptions: false, Method: 'post', InvokeName: 'login' }
// Invoke method.
var request = {
Login: "test",
Password: "test1"
};
webApi.login(request).success( // ...some actions...
*** POST, PUT, UPDATE. Case #2 ***
// url -> http://yourdomain.com/admin/manage/10/update
// model -> { "name": "Bob", "age": 20 }
// Declare request.
{ Url: 'admin/manage/{id}/{action}', CustomOptions: false, Method: 'put', InvokeName: 'updateUser' }
// Invoke method.
webApi.updateUser({
url: { "id": 10, "action": "update" },
data: { "name": "Bob", "age": 20 }
}).success( // ...some actions...
*** Sending a request options ***
To send a specific request options, foremost CustomOptions: true. in "requests.js". Then use a following syntax: You may specify there 'headers', 'responseType', 'timeout' etc. See https://docs.angularjs.org/api/ng/service/$http in section "Arguments" for details.
Case # 1. Inside array, the last argument - is an option object. Example:
webApi.getUserInfo([10, {"headers": {"Content-Type": "text/plain"} } ]);
Case # 2. If using an object, just designate an appropriate field within request. Example:
webApi.login({
Login:'user',
Password: 'pass',
options: {"timeout": 100}
});