A REST Web API for Mezzanine CMS with the Cartridge e-commerce extension
Project description
Mezzanine API
A REST Web API for the Mezzanine content management system with the Cartridge e-commerce extension.
Oh, and this will work even if you're just running a blog or any other Mezzanine website without the Cartridge package.
Features
Web API endpoints for all Mezzanine objects, including sites, users, groups, pages, blog posts and settings, and Cartridge objects, including products, categories and orders.
Swagger-UI as development tool and documentation.
Comes with API key authentication/authorisation configured, but can also be configured to work with Password-based and/or Authorisation code OAuth2 authentication/authorisation.
Screenshots
API docs
API keys
Installation
Install Python
New installation
Install Mezzanine and Cartridge:
pip3 install mezzanine
pip3 install cartridge
Create a new Mezzanine project with Cartridge, and set up a clean development database by running:
mezzanine-project -a cartridge [project-name]
cd [project_name]
python3 manage.py createdb --noinput --nodata
You may need to set ALLOWED_HOSTS, DATABASES and SHOP_CURRENCY_LOCALE in your project's settings.py file before creating the database.
ALLOWED_HOSTS = ['*']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db.dev',
}
}
SHOP_CURRENCY_LOCALE = 'en_GB.UTF-8'
Start a Python virtual environment, install the requirements and run the development server:
virtualenv env
source env/bin/activate
pip3 install -r requirements.txt
python3 manage.py runserver
Then see the following section on adding to an existing installation.
Adding to an existing installation
With Mezzanine and Cartridge installed, add the package to your project's requirements.txt file:
mezzanine-cartridge-api==1.1.3
Add the following to installed apps and middleware in your project's settings.py file:
INSTALLED_APPS = (
...
'corsheaders',
'rest_framework',
'rest_framework_api_key',
'drf_yasg',
'mezzanine_cartridge_api',
...
)
# Use `MIDDLEWARE_CLASSES` prior to Django 1.10
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
For OAuth2 authentication/authorisation, also add the following to installed apps in your project's settings.py file:
INSTALLED_APPS = (
...
'oauth2_provider',
'rest_framework.authtoken',
...
)
Add the following to your project's urls.py file:
urlpatterns = [
...
url(r'^api/', include('mezzanine_cartridge_api.urls')),
...
]
Start the Python virtual environment, install the requirements and run the development server:
virtualenv env
source env/bin/activate
pip3 install -r requirements.txt
python3 manage.py runserver
Configuration
The following configuration settings are available:
CORS_ORIGIN_ALLOW_ALL
And other django-cors-middleware settings.
REST_FRAMEWORK
See the Django REST framework settings.
SWAGGER_SETTINGS
See the drf-yasg Swagger settings.
SWAGGER_SCHEME_HTTPS
True or False: Defaults to False. True for when your API is available over HTTPS.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for mezzanine_cartridge_api-1.2.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 571aefeddb042c5774d4309534f8c79f22efdc01251c34419a1dcb13676d5e0e |
|
MD5 | 1f61e735a26756008c752c14cb60cb1e |
|
BLAKE2b-256 | 97c3793963671882b9e7dcdd745b94cc9485eb785e94b81f1afb263ea5d02b5d |