A data validation and REST auto-documenter for APIs.
Project description
# Restifier
Restifier is a python library for creating and documenting RESTful APIs.
It includes a middleware component, a set of decorators, and a "forms"
library for validating/documenting requests. The middle generates a
Swagger compatible JSON specification for the APIs automatically.
## Author
Jesse Lovelace <jesse@hawatian.com>
## License
The MIT License
## Usage
See tests.py for information on usage. In general, so create a payload
validator construct a class like this:
```python
class HelloMessage(Message):
greeting = StringProperty(description="The greating.",
validators=[regex(re.compile('^[A-Za-z]+$')), required()])
class HelloResponseMessage(Message):
salutation = StringProperty(description="The response.")
tags = StringProperty(repeated=True)
request = StructuredProperty(HelloMessage)
````
Then decorate your handlers like this:
```python
class HelloHandler(RequestHandler):
@api(input=HelloMessage, output=HelloResponseMessage)
def post(self, obj):
return {'salutation':'You are the best.'}
````
Also, to auto-document, use the middleware:
```python
routes = [
('/api/v1/hello', HelloHandler)
]
app = DocumentedMiddleware(
WSGIApplication(routes),
api_base="/api/v1",
api_overview="This is a super important API that does a lot of stuff."
)
```
Restifier is a python library for creating and documenting RESTful APIs.
It includes a middleware component, a set of decorators, and a "forms"
library for validating/documenting requests. The middle generates a
Swagger compatible JSON specification for the APIs automatically.
## Author
Jesse Lovelace <jesse@hawatian.com>
## License
The MIT License
## Usage
See tests.py for information on usage. In general, so create a payload
validator construct a class like this:
```python
class HelloMessage(Message):
greeting = StringProperty(description="The greating.",
validators=[regex(re.compile('^[A-Za-z]+$')), required()])
class HelloResponseMessage(Message):
salutation = StringProperty(description="The response.")
tags = StringProperty(repeated=True)
request = StructuredProperty(HelloMessage)
````
Then decorate your handlers like this:
```python
class HelloHandler(RequestHandler):
@api(input=HelloMessage, output=HelloResponseMessage)
def post(self, obj):
return {'salutation':'You are the best.'}
````
Also, to auto-document, use the middleware:
```python
routes = [
('/api/v1/hello', HelloHandler)
]
app = DocumentedMiddleware(
WSGIApplication(routes),
api_base="/api/v1",
api_overview="This is a super important API that does a lot of stuff."
)
```
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
restifier-1.0.2.tar.gz
(14.6 kB
view hashes)