- Notifications
You must be signed in to change notification settings - Fork1
A restful network interface with Codable
License
3zcurdia/AmacaPod
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Amaca is available throughCocoaPods. To installit, simply add the following line to your Podfile:
pod'Amaca'
Even when Amaca is based in convention over configuration principle, there are few things to setup.
You must implement a structure or a class conforming theAmacaConfigurable
protocol whereit will be defined the base url and the session for your connections, among with the authentication structureif needed.
publicprotocolServicesConfig{varsession:URLSession{get}varbaseURL:URL{get}}
structServicesConfig:AmacaConfigurable{letsession:URLSession=URLSession.sharedletbaseUrl:URL=URL(string:"https://example.com/api")!}
To initialize a service you must create an instance with the Codable you desireto parse a config and the path where all the RESTFUL routes reside.
Method | URI Pattern | Action |
---|---|---|
GET | /users | index |
POST | /users | create |
GET | /users/:id | show |
PUT | /users/:id | update |
DELETE | /users/:id | destroy |
Then for each method you can call the correspondent action
letconfig=ServicesConfig()letservice=CodableService<User>(config: config, path:"/users", auth:nil) service.index{ responsein // your code goes hereswitch response.status{case.success:print(response.data!.count)default:print(response.status)print(response)}}
Amaca provides authentication structs for query and header:
- QueryAuthentication
- HeaderAuthentication
letconfig=ServicesConfig()letauth=QueryAuthentication(method:.basicHeader, token:"secret-token-1234")letservice=CodableService<User>(config: config, path:"users", auth: auth) service.index{ responsein // your code goes hereswitch response.status{case.success:print(response.data!.count)default:print(response.status)print(response)}}
Note: CodableService internally implementsdataTask
other methods fromURLSession
could be supported in the future.
To contribute, just follow the next steps:
- Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
- Fork the project
- Start a feature/bugfix branch
- Commit and push until you are happy with your contribution
- It is desired to add some tests for it.
- Make a Pull Request
Amaca is available under the MIT license. See the LICENSE file for more info.
About
A restful network interface with Codable
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.