wrap up flask for restful interface
Project description
simple_flask_restful
simple_flask_restful
is a lightweight Python package that provides a simpler interface to create RESTful APIs using Flask.
Installation
The package can be installed via pip:
pip3 install simple_flask_restful
Usage
The package provides a Flask
application object and an Api
object to define the RESTful resources. Here is an example:
from simple_flask_restful import Flask, Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'message': 'Hello, world!'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
In the above example, we define a HelloWorld
resource that returns a simple JSON message. We add this resource to the Api
object, which in turn adds it to the Flask
application object.
Resources
A resource is a Python class that defines the HTTP methods that are allowed on a particular URL endpoint. Here is an example:
from simple_flask_restful import Flask, Resource, Api, reqparse
class Multiply(Resource):
def __init__(self):
self.parser = reqparse.RequestParser()
self.parser.add_argument('num1', type=float, required=True)
self.parser.add_argument('num2', type=float, required=True)
def get(self):
args = self.parser.parse_args()
result = args['num1'] * args['num2']
return {'result': result}
In the above example, we define a Multiply
resource that expects two query parameters, numone
and num2
, and returns their product. We use the reqparse
module to parse the query parameters.
To add this resource to the Api
object, we use the add_resource
method:
api.add_resource(Multiply, '/multiply', '/product')
This maps the Multiply
resource to the /multiply
and /multiply
URL endpoint.
Return Format: The return of method (get/post/put/delete) in the child class of Resource should be a dictionary or in JSON format. The default HTTP status code is 200.
Example:
return {'result': result}
is the same as
return {'result': result}, 200
Running the Server
To run the Flask server, simply call the run
method on the Flask
application object:
if __name__ == '__main__':
app.run(debug=True)
This will start the server on port 5000. You can access the resources at their corresponding URL endpoints, for example: http://localhost:5000/multiply?numone=2&num2=3
.
reqparse
We are using the reqparse
module to parse the arguments of the incoming request.
add_argument()
add_argument(name, dest=None, required=False, type=None, choices=None, help=None, default=None)
This method adds a new argument to the parser.
name
: The name of the argument.dest
: The name of the attribute to store the argument in. If not specified,name
will be used.required
: IfTrue
, this argument must be included in the request. Defaults toFalse
.type
: The expected data type of the argument. If specified, the argument will be coerced to this type. Supported types includestr
,int
,float
,bool
, and any callable that takes a single string argument and returns the parsed value. If not specified, the argument will be returned as a string.choices
: A list of valid choices for the argument. If specified, the argument must be one of these choices.help
: The error message to display if the argument is invalid.default
: The default value for the argument if it is not included in the request.
parse_args()
parse_args(strict=False)
This method parses the arguments of the incoming request.
strict
: IfTrue
, the request must contain only the arguments that were added to the parser. IfFalse
, additional arguments will be ignored. Defaults toFalse
.
License
simple_flask_restful
is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file simple_flask_restful-0.3.0.tar.gz
.
File metadata
- Download URL: simple_flask_restful-0.3.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 832271cc1cec8c6439c604756fa061e30131e99888ab4e2f537e6e61e0a4da1d |
|
MD5 | 8cb9460027c8ea17ecc690e02c635348 |
|
BLAKE2b-256 | a21facd809406b29c7cea4d5c77bd7e9e725611da40faa965d1176001a93e7d6 |
File details
Details for the file simple_flask_restful-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: simple_flask_restful-0.3.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 952bc845757145c9f35da2764640d358ab582e35b4226fbb26a7ae43ef3a0cc7 |
|
MD5 | 90f86c5ec1ed23836812838d5fe9b18d |
|
BLAKE2b-256 | 5e4121873ce5812b8c8e7ef714c042c095dc8ca9f173a66f88cea3f883ce77d7 |