Skip to main content

A REST Web API for Mezzanine CMS with the Cartridge e-commerce extension

Project description

Mezzanine API

PyPI Travis CI License Codecov

A REST Web API for the Mezzanine content management system with the Cartridge e-commerce extension.

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 docs

API keys

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.0.0

Add the following to installed apps and middleware in your project's settings.py file:

INSTALLED_APPS = (
    ...
    'corsheaders',
    'rest_framework',
    'rest_framework_api_key',
    'rest_framework_swagger',
    '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 Django REST Swagger settings

SWAGGER_SCHEME_HTTPS

True or False, e.g. True for when your production API is available over HTTPS

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mezzanine_cartridge_api-1.0.3.tar.gz (7.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page