Skip to main content

Auto APIs for lazy people.

Project description

IDRC

I Don't Really Care (IDRC): Auto APIs for lazy people

GitHub License

PyPI - Version PyPI - Downloads

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.5.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

idrc-1.5.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

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

Hashes for idrc-1.5.0.tar.gz
Algorithm Hash digest
SHA256 93f7b158fc9c844d2b11852172befd12be9e587333c363681ea9f66dcbc62005
MD5 52ef49a6edaa1cc8afb133808eb2bff4
BLAKE2b-256 0b2f631af963b054965a3f0b41cf92b5ef31623cd1d0d153ea82e50fdf029349

See more details on using hashes here.

Provenance

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

Hashes for idrc-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee6bef09f488b6afa78b340b308f06ae4cfc19116e16c9ea8f48b3aa0e0108ef
MD5 7366e82c1b277f325c30d2ddb9d7ae04
BLAKE2b-256 dba18ba7ad1149ff4e3107ca71a1db25acf0e682af26d0de1d042ab8d6d87880

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page