restiro 0.19.1

Creator: bradpython12

Last updated:

0 purchases

TODO
Add to Cart

Description:

restiro 0.19.1

RESTiro


RESTful API documentation generator (inline documentation + tests)
Features

Inline documentation parser
Example recorder middleware
Generate documentation in Markdown
Generate documentation in HTML
[restiro-spa-material]

Install
pip install restiro

Usage


Describe the request in comments, e.g:
controller/shelf.py
class ShelfController:

def post(self):
"""
@api {post} /shelf/:shelfId/book Add book into shelf

@apiVersion 1
@apiGroup Book
@apiPermission Noneres

@apiParam {String} title
@apiParam {String} author
@apiParam {DateTime} [publishDate]

@apiDescription
Here is some description
with full support of markdown.

- watch this!
- and this!
- there is a list!
"""
return [11, 22, 33]



Attach restiro middleware to your WSGI/HTTP verifier
(currently webtest supported), e.g:
Your project tests initializer:
from restiro.middlewares.webtest import TestApp
from restiro import clean_examples_dir

from my_project import wsgi_app

clean_examples_dir()
test_app = TestApp(wsgi_app)



Define responses to capture, e.g:
def test_shelf(test_app):
test_app.get('/shelf/100/book')

test_app.delete('/shelf/121/book')

test_app.doc = True
test_app.post(
'/shelf/100/book',
json={
'title': 'Harry Potter',
'author': 'JK. Rowling'
}
)

test_app.doc = True
test_app.post(
'/shelf/100/book',
json={
'title': 'Harry Potter2'
},
status=400
)



Run tests


Build documentation
$ restiro a_library

Response will be something like:
shelf-{shelf_id}-book-post.md
# Add book into shelf

## `POST` `/shelf/:shelfId/book`

Here is some description
with full support of markdown.

- watch this!
- and this!
- there is a list!


## Parameters

### Form parameters

Name | Type | Required | Default | Example | enum | Pattern | MinLength | MaxLength | Minimum | Maximum | Repeat | Description
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
title | String | `True` | | | | | | | | | `False` |
author | String | `True` | | | | | | | | | `False` |
publishDate | DateTime | `False` | | | | | | | | | `False` |

## Examples

### 200 OK

#### Request:

```
POST /shelf/100/book
Content-Type: application/x-www-form-urlencoded
```
```
title=Harry Potter
author=JK. Rowling
```

#### Response:

```
Content-Type: application/json
```
```
[11, 22, 33]
```


### 400 Bad Request, missed parameter `author`

#### Request:

```
POST /shelf/100/book
Content-Type: application/x-www-form-urlencoded
```
```
title=Harry Potter2
```

#### Response:

```
Content-Type: application/json
```
```
{"message": "Missed parameter `author`"}
```

---



CLI
usage: restiro [-h] [-t TITLE] [-o OUTPUT] [-b BASE_URI]
[-g {markdown,json,spa_material,mock}] [-l LOCALES]
[--build-gettext [BUILD_GETTEXT]]
src

Restiro Builder

positional arguments:
src Project module name

optional arguments:
-h, --help show this help message and exit
-t TITLE, --title TITLE
Project title
-o OUTPUT, --output OUTPUT
Output directory
-b BASE_URI, --base-uri BASE_URI
Base URI
-g {markdown,json,spa_material,mock}, --generator {markdown,json,spa_material,mock}
Generator, default: markdown
-l LOCALES, --locales LOCALES
Locales directory
--build-gettext [BUILD_GETTEXT]
Build .POT templates

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.