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"
req = %HTTPipe.Request{
method: :get,
url: "/me/api/application/#{app_id}"
}
|> MyApp.OvhClient.request!()
GET /cloud/project/{serviceName}/storage
service_name = "service_name"
req = %HTTPipe.Request{
method: :get,
url: "/cloud/project/#{service_name}/storage"
}s
|> MyApp.OvhClient.request!()
Note: Helper functions are only available currently for the /Cloud
portion of the OVH API.
Eventually, I would like to write a macro to create the queries.
GET /cloud/project/{serviceName}/storage
ExOvh.V1.Cloud.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
# 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.
- ***Helper*** modules for making building requests to the [Ovh Api](https://api.ovh.com/).
- ***Request*** functions to send requests 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"
req = %HTTPipe.Request{
method: :get,
url: "/me/api/application/#{app_id}"
}
|> MyApp.OvhClient.request!()
```
- `GET /cloud/project/{serviceName}/storage`
```
service_name = "service_name"
req = %HTTPipe.Request{
method: :get,
url: "/cloud/project/#{service_name}/storage"
}s
|> MyApp.OvhClient.request!()
```
#### Examples - Method 2 - Build the request using provided helper functions and send the request
***Note:*** Helper functions are only available currently for the `/Cloud` portion of the OVH API.
*Eventually, I would like to write a macro to create the queries.*
- `GET /cloud/project/{serviceName}/storage`
```
ExOvh.V1.Cloud.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)
- [x] 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)