Skip to main content

A remote CLI and Python client SDK for Mezzanine REST API.

Project description

# Mezzanine API Client

[![Download from PyPI](https://img.shields.io/pypi/v/mezzanine-client.svg)](https://pypi.python.org/pypi/mezzanine-client)
[![License](https://img.shields.io/pypi/l/mezzanine-client.svg)](https://pypi.python.org/pypi/mezzanine-client)
[![Join the chat](https://badges.gitter.im/gcushen/mezzanine-api.svg)](https://gitter.im/gcushen/mezzanine-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

A remote CLI and Python client SDK for [Mezzanine API](http://gcushen.github.io/mezzanine-api/).

It enables a user or service to remotely read or write to [Mezzanine CMS](http://mezzanine.jupo.org/) using Python or the command line. For example, you can write an article in Markdown on your laptop and type a simple command to automatically upload it and create a new blog post from it on your website.


# Installation

$ pip install -U mezzanine-client

# Prerequisites

Install [Mezzanine API](http://gcushen.github.io/mezzanine-api/) either locally (for development) or remotely (for production), as we need an API to connect to.

Once Mezzanine API is installed,

1. Login to your Mezzanine CMS Admin Panel (e.g. [http://127.0.0.1:8000/admin/](http://127.0.0.1:8000/admin/))
2. In the menu, click *OAuth* > *Applications*
3. Create a new application with the following details:

App Name: Mezzanine Python Client
App ID: id
App Secret: secret
Client Type: Confidential
Grant Type: Code
Redirect URI: https://httpbin.org/get

For development purposes, you can define the simple app ID and secret above, otherwise use the automatically generated ones.

# CLI Documentation

[CLI Documentation Website](http://gcushen.github.io/mezzanine-api/cli/)

## Configuration

Generally, you must set at least three configuration options: API URL, OAuth App ID, and OAuth App Secret. These settings correspond to the location of your Mezzanine API instance and your OAuth credentials to authenticate with it (as was discussed further in the above *Prerequisites* section).

```
$ mezzanine-cli config api_url http://127.0.0.1:8000/api
$ mezzanine-cli config client_id id
$ mezzanine-cli config client_secret secret
```

You can also see your current configuration and available options by issuing the `mezzanine-cli config` command without any arguments. Note that the `refresh_token` setting should not be altered.

## Getting started

Some examples:

```
# List all posts (most recent first).
$ mezzanine-cli posts list

# Get the post with the ID of 2.
$ mezzanine-cli posts get 2

# Create a post from a Markdown file.
$ mezzanine-cli posts create \
--title='Test Post from API Client' \
--content-file=~/Desktop/test.md \
--categories='Test,Fun' \
--markdown
```

Just add `--help` to any command in order to get help on the command line:

```
# General help.
$ mezzanine-cli

# View available options for creating posts.
$ mezzanine-cli posts create --help
```

Finally, if you wish to clear the credentials and reset CLI configuration, you can do so by running:

$ mezzanine-cli logout

# SDK Documentation

[SDK Documentation Website](http://gcushen.github.io/mezzanine-api/client/)

Example code to display recent blog posts:

```python
from mezzanine_client import Mezzanine
api = Mezzanine( 'app_id', 'app_secret' )

# Recent posts
published_posts = api.get_posts(offset=0, limit=10)
for post in published_posts:
print('{} (ID: {})'.format(post['title'], post['id']))
```

Further examples, such as for creating, listing, and retrieving blog posts, can be found in the [*examples*](https://github.com/gcushen/mezzanine-client-python/tree/master/examples) directory.

# Community

Join us in the [Mezzanine API chat room](https://gitter.im/gcushen/mezzanine-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) or leave a message and we will try to get back to you.

Feel free to [star](https://github.com/gcushen/mezzanine-client-python/) Mezzanine Client on Github to show your support and monitor updates.

Please file a [ticket](https://github.com/gcushen/mezzanine-client-python/issues) or contribute a pull request on GitHub for bugs or feature requests.

# License

Licensed under the [ISC License](https://github.com/gcushen/mezzanine-client-python/blob/master/LICENSE).

Created by [George Cushen](https://twitter.com/GeorgeCushen).

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-client-0.2.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

mezzanine_client-0.2.1-py2.py3-none-any.whl (10.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mezzanine-client-0.2.1.tar.gz.

File metadata

File hashes

Hashes for mezzanine-client-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7e12eb03ef94f76bc1f391dde43a89bf2aab77f1bf5659b9c40f991127792915
MD5 ee52da7b396745507a45e95acd140149
BLAKE2b-256 bae85e80d07080419f7c3e441da063390b6e2c3f6ecb0ff4c5ae9319e7dc7298

See more details on using hashes here.

File details

Details for the file mezzanine_client-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for mezzanine_client-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e95a819b3e32aac12a668c35038a843b6af5abb0e46baebd1cbc0c23438b7549
MD5 3f2ba0628fa5ad2103f141c4e23537b9
BLAKE2b-256 5354ad8d7f7a5b64cb38f87d091ba99ecfc3eb6f18aca0ec4e3c708fd3e046b2

See more details on using hashes here.

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