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
# 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
- ***A 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)