Auto APIs for lazy people.
Project description
IDRC
I Don't Really Care (IDRC): Auto APIs for lazy people
Table of Contents
Installation
IDRC can be installed via pip
like so:
pip3 install idrc
Usage
IDRC can integrate with any function. For example:
from idrc import idrc
# Initialize the idrc class
api = idrc(verbose=True)
# Simulate a weather database
weather_data = {
"New York": {"temperature": 25, "condition": "Sunny"},
"Los Angeles": {"temperature": 30, "condition": "Cloudy"},
"Chicago": {"temperature": 18, "condition": "Rainy"}
}
# Define a weather forecast function
def get_weather(city: str) -> dict:
forecast = weather_data.get(city, None)
if forecast:
return forecast
else:
return api.ecode(404, 'City not found')
# Register the function as an API endpoint
api.define(get_weather, methods=['GET'])
# Run the idrc API
if __name__ == '__main__':
api.run(host='0.0.0.0', port=5000, debug=True)
The define
function in the idrc
library generated the api.
The Flask equivalent of the code above is:
from flask import Flask, request, jsonify
# Initialize the Flask app
app = Flask(__name__)
# Simulate a weather database
weather_data = {
"New York": {"temperature": 25, "condition": "Sunny"},
"Los Angeles": {"temperature": 30, "condition": "Cloudy"},
"Chicago": {"temperature": 18, "condition": "Rainy"}
}
# Define a weather forecast function
@app.route('/api/v1/get_weather', methods=['GET'])
def get_weather():
city = request.args.get('city')
if not city:
return jsonify({"error": "City parameter is required"}), 400
forecast = weather_data.get(city)
if forecast:
return jsonify(forecast)
else:
return jsonify({"error": "City not found"}),404
# Run the Flask app
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
IDRC condensed 27 lines of code into 25 lines of code, with much less typing overall.
IDRC vs Flask
Advantages of IDRC
- Rapid API development
- Very Simple
- Built-in error handling
- Lightweight wrapper of Flask
- Pretty terminal output
Advantages of Flask
- Mature framework
- Large community
- Flexible and extensible
- Extensive documentation
- Stack traces
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
idrc-1.4.0.tar.gz
(9.1 kB
view details)
Built Distribution
idrc-1.4.0-py3-none-any.whl
(9.8 kB
view details)
File details
Details for the file idrc-1.4.0.tar.gz
.
File metadata
- Download URL: idrc-1.4.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd0f22ccdb9a75bf5dc70ded0bdefe4a77cdb257cfc3b311528b9d9b8a472e0c |
|
MD5 | 39356c47a9c68d9dd4f25635ff90c896 |
|
BLAKE2b-256 | 88df37e35dd9d62436ee588d663ec40a99a789c1e962b24177c23f0db1e29279 |
Provenance
File details
Details for the file idrc-1.4.0-py3-none-any.whl
.
File metadata
- Download URL: idrc-1.4.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aded183641c243ec83f0c180d0e923da0a63f447c4edbc62d589ea47272bf268 |
|
MD5 | 39d48a8a126ce3d8fb76a683b0bd1344 |
|
BLAKE2b-256 | 5e9dae8d26a19c08940bec27bf46f0745cd231c0e57c31e7ce0c64945fbc6045 |