Hash :
46d666e2
Author :
Date :
2017-02-16T18:52:44
merge the docs out of separate folder and back into the modules
ExOvh is an helper library for the elixir language for the Ovh Api. To use the Openstack components of the OVH API, see Openstex
application key
, application secret
and consumer key
.
This may be done manually by going to https://eu.api.ovh.com/createApp/
and following the directions outlined by OVH
at
their first steps guide.
Alternatively, this may be achieved by running a mix task. This saves me a lot of time when generating a new application.
The client module (eg AwesomeApp.OvhClient
) is the interface for accessing the
functions of the ex_ovh API
.
GET /me/api/application/#{app_id}
app_id = "0"
%ExOvh.Query{
headers: [],
method: :get,
params: %{},
service: :ovh,
uri: "/me/api/application/#{app_id}"
}
|> MyApp.OvhClient.request!()
GET /cloud/project/{serviceName}/storage
service_name = "service_name"
%ExOvh.Query{
headers: [],
method: :get,
params: %{},
service: :ovh,
uri: "/cloud/project/#{service_name}/storage"
}
|> MyApp.OvhClient.request!()
Note: The Helper functions are listed under Services
. Helper functions are only available currently for the
/Cloud
portion of the OVH API. Where other parts of the api need to be queried, just build the query manually
using Method 1 as above. Pull requests for helper functions for other parts of the OVH API are welcome.
Eventually, I would like to write a macro to create the queries.
GET /cloud/project/{serviceName}/storage
alias ExOvh.Services.V1.Cloud.Cloudstorage
Cloudstorage.Query.get_containers(service_name) |> ExOvh.request!()
For more information See Hex Docs
This is an unofficial client to the OVH api and is not maintained by OVH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
# ExOvh [![Build Status](https://travis-ci.org/stephenmoloney/ex_ovh.svg)](https://travis-ci.org/stephenmoloney/ex_ovh) [![Hex Version](http://img.shields.io/hexpm/v/ex_ovh.svg?style=flat)](https://hex.pm/packages/ex_ovh) [![Hex docs](http://img.shields.io/badge/hex.pm-docs-green.svg?style=flat)](https://hexdocs.pm/ex_ovh) [![Deps Status](https://beta.hexfaktor.org/badge/prod/github/stephenmoloney/ex_ovh.svg)](https://beta.hexfaktor.org/github/stephenmoloney/ex_ovh)
ExOvh is an helper library for the [elixir language](http://elixir-lang.org/) for the [Ovh Api](https://api.ovh.com/).
To use the Openstack components of the OVH API, see [Openstex](https://github.com/stephenmoloney/openstex)
#### Project Features
- Config supervised agent running in the background which stores frequently accessed authentication information.
- Query modules for making building requests to the [Ovh Api](https://api.ovh.com/).
- Request functions to send Queries to the [Ovh Api](https://api.ovh.com/).
#### Getting started - Step 1: Generating the OVH `application key`, `application secret` and `consumer key`.
- This may be done manually by going to `https://eu.api.ovh.com/createApp/` and following the directions outlined by `OVH` at
[their first steps guide](https://api.ovh.com/g934.first_step_with_api).
- Alternatively, this may be achieved by running a mix task. This saves me a lot of time when generating a new application.
- [Documentation here](https://github.com/stephenmoloney/ex_ovh/blob/master/docs/mix_task.md)
#### Getting Started - Step 2: Generating the OVH client module for your elixir application
- The client module (eg `AwesomeApp.OvhClient`) is the interface for accessing the
functions of the ***ex_ovh*** `API`.
- [Documentation here](https://github.com/stephenmoloney/ex_ovh/blob/master/docs/getting_started.md)
#### Usage
#### Examples - Method 1 - Building the queries manually and send the request (my preferred way)
- `GET /me/api/application/#{app_id}`
```
app_id = "0"
%ExOvh.Query{
headers: [],
method: :get,
params: %{},
service: :ovh,
uri: "/me/api/application/#{app_id}"
}
|> MyApp.OvhClient.request!()
```
- `GET /cloud/project/{serviceName}/storage`
```
service_name = "service_name"
%ExOvh.Query{
headers: [],
method: :get,
params: %{},
service: :ovh,
uri: "/cloud/project/#{service_name}/storage"
}
|> MyApp.OvhClient.request!()
```
#### Examples - Method 2 - Build the query using provided helper functions and send the request
***Note:*** The Helper functions are listed under `Services`. Helper functions are only available currently for the
`/Cloud` portion of the OVH API. Where other parts of the api need to be queried, just build the query manually
using *Method 1* as above. Pull requests for helper functions for other parts of the OVH API are welcome.
*Eventually, I would like to write a macro to create the queries.*
- `GET /cloud/project/{serviceName}/storage`
```
alias ExOvh.Services.V1.Cloud.Cloudstorage
Cloudstorage.Query.get_containers(service_name) |> ExOvh.request!()
```
- For more information [See Hex Docs](https://hexdocs.pm/ex_ovh/0.2/api-reference.html)
#### Contributing
- Pull requests welcome.
#### Tests
- Tests have not been written yet.
#### TODO
- [ ] Tests for OVH portion of library
- [ ] Option to set the application ttl when running ovh mix task.
- [ ] Add queries for the remainder of the OVH API. (~~Webstorage CDN~~ (now a deprecated service) and Cloud are the only ones covered so far)
- [ ] Basic examples to be added to readme of usage of the api.
- [ ] Add macro for building queries.
- [ ] Write the usage guide - more examples of using the API.
#### Note
This is an unofficial client to the OVH api and is not maintained by OVH.
#### Licence
[MIT Licence](LICENCE.md)