Conexión a MongoDB desde Python: Creación de una API

Conexión a MongoDB desde Python: Creación de una API

En este tutorial, aprenderemos a conectarnos a MongoDB desde Python y crear una API REST para acceder a los datos de la base de datos.

Requisitos

  • Python 3
  • MongoDB
  • Flask
  • pip

Paso 1: Instalar dependencias

Para instalar las dependencias necesarias, ejecuta los siguientes comandos en la terminal:

pip install pymongo
pip install flask

Paso 2: Crear una base de datos

Para crear una base de datos en MongoDB, puedes usar la consola de administración o la API. En este tutorial, usaremos la consola de administración.

Inicia la consola de administración de MongoDB y crea una nueva base de datos llamada my_database:

use my_database

Paso 3: Crear una colección

Una colección es un grupo de documentos en MongoDB. Para crear una colección en my_database, ejecuta el siguiente comando:

db.createCollection("my_collection")

Paso 4: Crear un documento

Un documento es una unidad de datos en MongoDB. Para crear un documento en my_collection, ejecuta el siguiente comando:

db.my_collection.insertOne({"name": "John Doe"})

Paso 5: Conectarse a MongoDB desde Python

Para conectarnos a MongoDB desde Python, usaremos el controlador pymongo.

Importa el controlador pymongo:

Python
from pymongo import MongoClient

Crea un cliente de MongoDB:

Python
client = MongoClient("mongodb://localhost:27017")

Elige la base de datos:

Python
db = client.my_database

Paso 6: Crear una API REST

Usaremos el framework Flask para crear una API REST.

Crea un nuevo archivo llamado app.py y agrega el siguiente código:

Python
from flask import Flask, request
from pymongo import MongoClient

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, world!"

@app.route("/api/users", methods=["GET", "POST"])
def users():
    if request.method == "GET":
        users = db.my_collection.find()
        return jsonify(users)
    elif request.method == "POST":
        data = request.get_json()
        db.my_collection.insertOne(data)
        return jsonify({"message": "User created successfully"})

if __name__ == "__main__":
    app.run(debug=True)

Este código crea un endpoint /api/users que admite las solicitudes GET y POST.

Prueba la API

Para probar la API, ejecuta el siguiente comando:

python app.py

Abre un navegador y visita la siguiente URL:

http://localhost:5000

Verás el siguiente mensaje:

Hello, world!

Para probar el endpoint /api/users, envía una solicitud GET a la siguiente URL:

http://localhost:5000/api/users

Verás una respuesta JSON con la lista de usuarios en la base de datos.

Para probar el endpoint /api/users con una solicitud POST, envía una solicitud POST a la siguiente URL con los datos del usuario en el cuerpo de la solicitud:

http://localhost:5000/api/users

El cuerpo de la solicitud debe ser un JSON con la siguiente estructura:

{
    "name": "John Doe"
}

Verás una respuesta JSON con el mensaje «User created successfully».

Conclusión

En este tutorial, aprendimos a conectarnos a MongoDB desde Python y crear una API REST para acceder a los datos de la base de datos.

Para obtener más información, consulta la documentación de pymongo y Flask.