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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file idrc-1.5.0.tar.gz.
File metadata
- Download URL: idrc-1.5.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93f7b158fc9c844d2b11852172befd12be9e587333c363681ea9f66dcbc62005
|
|
| MD5 |
52ef49a6edaa1cc8afb133808eb2bff4
|
|
| BLAKE2b-256 |
0b2f631af963b054965a3f0b41cf92b5ef31623cd1d0d153ea82e50fdf029349
|
File details
Details for the file idrc-1.5.0-py3-none-any.whl.
File metadata
- Download URL: idrc-1.5.0-py3-none-any.whl
- Upload date:
- Size: 10.1 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 |
ee6bef09f488b6afa78b340b308f06ae4cfc19116e16c9ea8f48b3aa0e0108ef
|
|
| MD5 |
7366e82c1b277f325c30d2ddb9d7ae04
|
|
| BLAKE2b-256 |
dba18ba7ad1149ff4e3107ca71a1db25acf0e682af26d0de1d042ab8d6d87880
|