Skip to main content

apys - v0.4

Wellcome to apys! A simple backend restful framework!

LANGUAGE

Python >= 3.4.2

LIBRARIES

  • aiohttp - http client/server for asyncio


INSTALATION

  1. Install python 3

    • Windows - Link

    • Ubuntu - sudo apt-get install python

    • Fedora - sudo yum install python

    • Arch - sudo pacman -S python

  2. Install PIP - Python libraries manager

    • Windows - Link

    • Ubuntu - sudo apt-get install pip

    • Fedora - sudo yum install pip

    • Arch - sudo pacman -S pip

  3. Install this framework using PIP

    • pip install apys


INITIALIZATING PROJECT

$ apys --init

USING

DIRECTORIES

/config - json configuration files
/endpoints - backend endpoints
/utils - helper script files

CONFIG

Here are the configuration files used in the app. They will be send to the endpoint via param api.config

There are 3 special filenames: * prod.json - The oficial configuration file * dev.json - The development configuration file * local.json - The local configuration file (ignore in git)

You can also force it to use a configuration with the --config or -c option:

$ apys -s --config=my_config

Note: If no config file is choosen, they will work as following: the
api tries to load ``local.json``, then ``dev.json``, then
``prod.json``

The current config special properties are the following:

{
    "log": {
        "file": {
            "debug": "string or false //default=false. debug log file, false for sys.stdout",
            "error": "string or false //default=false. debug error file, false for sys.stderr",
            "(...)": "string or false //optional. you can specify any other log file, but you will have to tell the `api.debug` function to use it"
        },
        "color": "bool //default=true"
    },
    "server": {
        "port": "int //default=8888",
        "cors": "string or false //default=false"
    },
    "(...)": "(...) //you can add any other key and access it via `api.config['my_key']`"
}

ENDPOINTS

This will be your main dev dir

All files added here will be an endpoint automatically

i.e.: the file endpoints/hello/world.py will generate an endpoint /hello/world

The file’s code will be the following:

utils = [
    '[util1]',
    '[util2]'
]

def [method](req, api):
    [process]

Where [method] is the http request type: * post * get * put * delete * head * options * default - executed when a request is made for any of the above, but it is not implemented

[process] is what you wan the endpoint to do (your code)

[util1] and [util2] are the utils scripts (without .py)

req is aiohttp’s request, documentation

req has the params property to read the request body

api is the object that contains all api functionalities: * config - Configuration dictionary used in the actual scope * debug - function to log messages * error - function to log errors

UTILS

Python files with reusable code, to be called on endpoints.

It will be a normal cod, but with some special funcions:

init(api)

The function that will be executed on server startup
Only one time.

[method](req, api) - [method] being the type of http request

The function that will be called before every request to the function with the same name on the endpoint.
Any result should be stored on the variable `req`, because it is the only local variable on the request.

any(req, api)

The function that will be executed before any request.
Note: thids function will be executed before the later.

EXAMPLE

Look at the demos/ for examples:

  1. hello_world: a simple hello world app, to learn the basics

  2. multiple_endpoints: a simpler app that resembles more a final product

  3. log_to_file: an example of logging in files


STARTING THE SERVER

There are 2 ways to start the server

  1. Execute apys -s from terminal on your root project folder (Recomended)

  2. Call the method start() from module apys.server (Only recomended if you need to do something before starting the server)


OBSERVATION

Both the framework and this page are in development, so, subjected to changes.

Version previous to v0.1.0 vas called pypolyback and used python 2.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apys-0.4.2-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file apys-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: apys-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for apys-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b774787eb7c4b876895197040b9c5cb886e5b54ff8166903a8bff8300e0e4b62
MD5 08fed07d20ff4526b2c84657deeb055b
BLAKE2b-256 348fec835a9f69f8f132f71eb0343c6dad289c7a430df8d42677fb5eaa64751e

See more details on using hashes here.

Release history Release notifications | RSS feed

3.2.1

2 files

3.1.5

2 files

3.1.4

2 files

3.1.2

1 file

3.1.1

1 file

3.1.0

1 file

3.0.0

1 file

2.2.2

1 file

2.2.1

1 file

2.2.0

1 file

2.1.1

1 file

2.1.0

1 file

2.0.1

1 file

2.0.0

1 file

1.0.1

1 file

1.0.0

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.3

1 file

0.5.2

1 file

0.5.1

1 file

0.5.0

1 file

0.4.3

1 file

This release

0.4.2 This release

1 file

0.4.1

1 file

0.4.0

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.6

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page