Skip to content

asduser/webApi-angularjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

webApi module

Definitely simplifies your work with server side and organizes webApi layout to further managing.

A special template helps use in your code url in format: "api/manage/news/{query}/{pageSize}/{pageNumber}" as simple as it possible.

Image

How to use

  1. Go to webApi/categories/ directory.
  2. 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).
  3. Fill each request using an existing template (see 'webApi/categories/account.js' file).
  4. Then add your created constant name into 'webApi/categories-handler/requests.js'.
  5. Now you may use new methods in application via special "InvokeName" parameter.
  6. 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}
});

Licence

MIT License

Copyright (c) 2017 asduser

About

⚓ Definitely simplifies your work with server side & organizes webApi layout to further managing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published