Skip to main content

asyncio REST API Resource database

Project description

https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat https://travis-ci.org/plone/guillotina.svg?branch=master Test Coverage Python Versions https://img.shields.io/pypi/v/guillotina.svg License Chat

Please read the detailed docs

This is the working project of the next generation Guillotina server based on asyncio.

Dependencies

  • python >= 3.6

  • postgresql >= 9.6

Quickstart

We use pip:

pip install guillotina

Run postgresql

If you don’t have a postgresql server to play with, you can run one easily with docker.

Download and start the docker container by running:

make run-postgres

Run the server

To run the server:

g

Then…

curl http://localhost:8080

Or, better yet, use postman to start playing with API.

You can also navigate in your Guillotina server with its built-in web admin interface by visiting http://localhost:8080/+admin/.

Getting started with development

Using pip:

./bin/pip install requirements.txt
./bin/pip install -e .[test]

Run tests

We’re using pytest:

./bin/pytest guillotina

and for test coverage:

./bin/pytest --cov=guillotina guillotina/

With file watcher…

./bin/ptw guillotina –runner=./bin/py.test

To run tests with cockroach db:

USE_COCKROACH=true ./bin/pytest guillotina

Default

Default root access can be done with AUTHORIZATION header : Basic root:root

Docker

You can also run Guillotina with Docker!

First, run postgresql:

docker run --rm \
    -e POSTGRES_DB=guillotina \
    -e POSTGRES_USER=guillotina \
    -p 127.0.0.1:5432:5432 \
    --name postgres \
    postgres:9.6

Then, run guillotina:

docker run --rm -it \
    --link=postgres -p 127.0.0.1:8080:8080 \
    guillotina/guillotina:latest \
    g -c '{"databases": [{"db": {"storage": "postgresql", "dsn": "postgres://guillotina:@postgres/guillotina"}}], "root_user": {"password": "root"}}'

This assumes you have a config.yaml in your current working directory

Chat

Join us to talk about Guillotina at https://gitter.im/plone/guillotina

4.5.4 (2019-02-07)

  • Fix serialization of json field to work with swagger [vangheem]

4.5.3 (2019-01-31)

  • Add get method to BucketListValue class [vangheem]

4.5.2 (2019-01-31)

  • Reusage of jwt decode [bloodbare]

4.5.1 (2019-01-30)

  • Fix read connection lock regression [vangheem]

4.5.0 (2019-01-30)

  • By default, do not serialize json data to postgresql anymore. If you were depending on store_json default to be true, you need to update [vangheem]

  • Provide guillotina.db.interfaces.IJSONDBSerializer to be able to override json stored in posgresql to be different than what is serialized in catalog/elasticsearch/etc [vangheem]

  • Improved PostgresqlStorage._check_bad_connection() [masipcat]

-fix typos in documentation

4.4.10 (2019-01-23)

  • postgresql storage needs to share connection lock [vangheem]

4.4.9 (2019-01-15)

  • Handle if no data to iterate on for downloads [vangheem]

4.4.8 (2019-01-15)

  • Fix release [vangheem]

4.4.7 (2019-01-15)

  • Defer preparing download response so http exceptions are handle correctly [vangheem]

4.4.6 (2019-01-15)

  • Fix getting binding file field for cloud files [vangheem]

  • provide guillotina.utils.get_url function that pays attention to X-VirtualHost-Monster header [vangheem]

  • Take X-Forwarded-Proto into account for request url [vangheem]

  • Implement multi attachments [masipcat]

4.4.5 (2019-01-11)

  • Allow to login on IApplication. [bloodbare]

4.4.4 (2019-01-11)

  • Be able to prevent closing database connection pools [vangheem]

4.4.3 (2019-01-11)

  • Implement db.storage.spg.PGConnectionManager class to allow safely sharing pool and read connections between multiple storages. [vangheem]

4.4.2 (2019-01-10)

  • Option to add different type of containers. [bloodbare]

4.4.1 (2019-01-09)

  • Postgresql storage accepts pool arguments [vangheem]

4.4.0 (2018-12-27)

New:

  • Implement HEAD for @download endpoint [vangheem]

  • Be able to customize the table names used with objects_table_name and blobs_table_name database configuration options. [vangheem]

  • Adding the option to define the reader for annotations [bloodbare]

Fixes:

  • Fix Resource.__getattr__() for empty fields with default values [masipcat]

4.3.5 (2018-12-09)

  • Added before render view event [lferran]

4.3.4 (2018-12-06)

  • Check valid generated id [vangheem]

  • Implement delete by value for PatchField(value_type=schema.List()) [vangheem]

4.3.3 (2018-12-03)

  • Be able to override configuration with environment variables [vangheem]

You are seeing a truncated changelog.

You can read the changelog file for a complete list.

Project details


Release history Release notifications | RSS feed

This version

4.5.4

Download files

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

Source Distribution

guillotina-4.5.4.tar.gz (5.9 MB view hashes)

Uploaded Source

Built Distribution

guillotina-4.5.4-py3-none-any.whl (5.4 MB view hashes)

Uploaded Python 3

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