Low-level HTTP helpers for Dropbox API v2.
Dropbox uses three styles of endpoints:
- RPC — JSON body in, JSON body out (
api.dropboxapi.com) - Content upload — binary body in, JSON metadata out; args in
Dropbox-API-Arg - Content download — binary body out; args in
Dropbox-API-Arg; metadata inDropbox-API-Resultresponse header
Summary
Functions
Content-download endpoint: returns %{metadata: map, body: binary, headers: list}.
Content-upload endpoint: binary body, args via Dropbox-API-Arg header.
POST application/x-www-form-urlencoded (token endpoints).
Call a notify-domain endpoint (e.g. files/list_folder/longpoll).
Call an RPC endpoint (POST JSON → JSON).
RPC with an empty JSON object body (null is also accepted by some endpoints).
Types
@type download_result() :: {:ok, %{metadata: map(), body: binary(), headers: list()}} | {:error, Noizu.Dropbox.Error.t()}
@type result() :: {:ok, term()} | {:error, Noizu.Dropbox.Error.t()}
Functions
@spec content_download(String.t(), map(), options()) :: download_result()
Content-download endpoint: returns %{metadata: map, body: binary, headers: list}.
Content-upload endpoint: binary body, args via Dropbox-API-Arg header.
POST application/x-www-form-urlencoded (token endpoints).
Call a notify-domain endpoint (e.g. files/list_folder/longpoll).
Call an RPC endpoint (POST JSON → JSON).
Options
:client—%Noizu.Dropbox.Client{}(default:Client.default()):body— request map (default:%{}ornilfor no body):decode—:atoms(default),:strings,:raw, or a module withfrom_json/1:auth—:user(default bearer token),:app(basic app key/secret),:none:headers— extra headers:timeout— receive timeout override
RPC with an empty JSON object body (null is also accepted by some endpoints).