API

DinoMail exposes an API. The API allows to :

  • get a token
  • list, detail, create, modify and delete a virtual domain
  • list, detail, create, modify, modify password of and delete a virtual user
  • list, detail, create, modify and delete a virtual alias

Authentication

For the most part of the API, you will need to authenticate with an ApiKey : Authorization: ApiKey username:apikey.

To get an api key, you can query the url /api/apikey/ with a basic authentication : Authorization: Basic username:password.

Note

If you’re using Apache & mod_wsgi, you will need to enable WSGIPassAuthorization On.

Virtual domains, users and aliases urls

The basis URLS are

  • /api/virtualdomain
  • /api/virtualuser
  • /api/virtualalias

You can then, for each of those basis urls, query

  • / (GET) : list of all objects.
  • / (POST) : add an object.
  • /<pk>/ (GET) : get detail for object with primary key <pk>.
  • /<pk>/ (PUT) : update all fields of object with primary key <pk>.
  • /<pk>/ (PATCH) : update specified fields of object with primayr key <pk>.
  • /<pk>/ (DELETE) : delete object with primary key <pk>.

Note

A POST on /api/virtualuser/<pk>/ will not reset the password.

There is also a special URL to change a user’s password : /api/changeuserpassword/<pk>/, (POST or PATCH are available). You have to transmit the plain text password.

You can take a look at https://django-tastypie.readthedocs.io/en/latest/interacting.html/.