tanuki v0.1.0 Tanuki
Tanuki
At this moment this wrapper is a work in progress!
To use this library you’ll need your private token for your gitlab instance, or from
gitlab. This can be found at
Some functions are only to be used by admins.
Let’s get started! :)
iex> Tanuki.Client.new(%{private_token: “T0k3n_H3r3”}, “https://yourinstance.tld/api/v3/”) %Tanuki.Client{endpoint: “https://yourinstance.tld/api/v3/”, private_token: “T0k3n_H3r3”}
iex> Tanuki.Client.new(%{private_token: “T0k3n_H3r3”}) # Default is GitLab.com %Tanuki.Client{endpoint: “https://gitlab.com/api/v3/”, private_token: “T0k3n_H3r3”}
iex> Tanuki.Client.new(%{oauth_token: “T0k3n_H3r3”}) # Default is GitLab.com %Tanuki.Client{endpoint: “https://gitlab.com/api/v3/”, private_token: nil, oauth_token: “T0k3n_H3r3”}
With the returned client you can make requests to the endpoint specified.
Conventions
- When an id or such is needed for building the url, thus also required, it is an parameter, before passing the %Client.
- If parameters, to be passed in the body, are required, so is the param struct. Passed after the %Client
- If no params are used by the API endpoint, no param struct can be passed
- In case the params are only optional, so is params.
list -> Get a collection of what you requests find -> Get one, usually by id create -> Creates a new instance @ the endpoint modify -> modify the Instance @ the endpoint delete -> Makes it rain in South Afrika
Summary
Functions
Used for all DELETE requests
Issues a DELETE request to the given url, raising an exception in case of failure
Used for all GET requests
Issues a GET request to the given url, raising an exception in case of failure
Issues a HEAD request to the given url
Issues a HEAD request to the given url, raising an exception in case of failure
Issues an OPTIONS request to the given url
Issues a OPTIONS request to the given url, raising an exception in case of failure
Used for all PATCH requests
Issues a PATCH request to the given url
Issues a PATCH request to the given url, raising an exception in case of failure
Used for all POST requests
Issues a POST request to the given url
Issues a POST request to the given url, raising an exception in case of failure
Used for all PUT requests
Issues a PUT request to the given url
Issues a PUT request to the given url, raising an exception in case of failure
Issues an HTTP request with the given method to the given url
Issues an HTTP request with the given method to the given url, raising an exception in case of failure
Starts HTTPoison and its dependencies
Types
headers :: [{binary, binary}]
Functions
Specs
Used for all DELETE requests
Shouldn’t be called by you.
Issues a DELETE request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Used for all GET requests
Shouldn’t be called by you.
Issues a GET request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues a HEAD request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
Issues a HEAD request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues an OPTIONS request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
Issues a OPTIONS request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues a PATCH request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
Specs
Issues a PATCH request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues a POST request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
Issues a POST request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues a PUT request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
Issues a PUT request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Specs
Issues an HTTP request with the given method to the given url.
This function is usually used indirectly by get/3
, post/4
, put/4
, etc
Args:
method
- HTTP method as an atom (:get
,:head
,:post
,:put
,:delete
, etc.)url
- target url as a binary string or char listbody
- request body. See more belowheaders
- HTTP headers as an orddict (e.g.,[{"Accept", "application/json"}]
)options
- Keyword list of options
Body:
- binary, char list or an iolist
{:form, [{K, V}, ...]}
- send a form url encoded{:file, "/path/to/file"}
- send a file
Options:
:timeout
- timeout to establish a connection, in milliseconds. Default is 8000:recv_timeout
- timeout used when receiving a connection. Default is 5000:stream_to
- a PID to stream the response to:proxy
- a proxy to be used for the request; it can by a regular url or a{Host, Proxy}
tuple:proxy_auth
- proxy authentication{User, Password}
tuple:ssl
- SSL options supported by thessl
erlang module:follow_redirect
- a boolean that causes redirects to be followed:max_redirect
- an integer denoting the maximum number of redirects to follow
Timeouts can be an integer or :infinity
This function returns {:ok, response}
or {:ok, async_response}
if the
request is successful, {:error, reason}
otherwise.
Examples
request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
Issues an HTTP request with the given method to the given url, raising an exception in case of failure.
request!/5
works exactly like request/5
but it returns just the
response in case of a successful request, raising an exception in case the
request fails.