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

Uploaded Source

Built Distribution

idrc-1.4.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

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

Hashes for idrc-1.4.0.tar.gz
Algorithm Hash digest
SHA256 dd0f22ccdb9a75bf5dc70ded0bdefe4a77cdb257cfc3b311528b9d9b8a472e0c
MD5 39356c47a9c68d9dd4f25635ff90c896
BLAKE2b-256 88df37e35dd9d62436ee588d663ec40a99a789c1e962b24177c23f0db1e29279

See more details on using hashes here.

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

Hashes for idrc-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aded183641c243ec83f0c180d0e923da0a63f447c4edbc62d589ea47272bf268
MD5 39d48a8a126ce3d8fb76a683b0bd1344
BLAKE2b-256 5e9dae8d26a19c08940bec27bf46f0745cd231c0e57c31e7ce0c64945fbc6045

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