Api y Api Rest, con javascript y con python

¿Qué es una API?

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y protocolos que permite que diferentes aplicaciones se comuniquen entre sí. Es como un intermediario que permite que diferentes aplicaciones se conecten y compartan datos o funcionalidades de manera segura y eficiente1.

¿Qué es una API REST?

Una API REST (Transferencia de Estado Representacional) es un tipo específico de API que sigue ciertos principios y convenciones para el diseño y la implementación de servicios web. REST no es un protocolo, sino un estilo arquitectónico que se basa en el protocolo HTTP y utiliza sus métodos (GET, POST, PUT, DELETE) para realizar operaciones sobre los recursos que la API expone21.

Diferencias entre API y API REST

¿Cómo se crean?

Para crear una API REST, generalmente se siguen estos pasos:

  1. Definir los recursos: Identificar los datos o servicios que la API expondrá.
  2. Diseñar los endpoints: Crear las URLs que permitirán acceder a los recursos.
  3. Implementar los métodos HTTP: Programar las operaciones (GET, POST, PUT, DELETE) que se podrán realizar sobre los recursos.
  4. Configurar el servidor: Utilizar un servidor web (como Node.js, Django, Flask) para manejar las solicitudes y respuestas.
  5. Documentar la API: Proveer documentación clara para que otros desarrolladores puedan utilizar la API correctamente.

Utilidades de una API REST

se pueden obtener recursos de bases de datos como MySQL o MongoDB a través de una API REST! Aquí te explico cómo funciona:

Integración con MySQL

  1. Conexión a la base de datos: Utiliza un controlador o biblioteca específica para conectarte a MySQL desde tu aplicación (por ejemplo, mysql para Node.js o mysql-connector-python para Python).
  2. Consultas SQL: Realiza consultas SQL para obtener, insertar, actualizar o eliminar datos en la base de datos.
  3. Endpoints de la API: Define los endpoints de tu API REST que llamarán a estas consultas SQL y devolverán los resultados en un formato como JSON.

Integración con MongoDB

  1. Conexión a la base de datos: Utiliza una biblioteca como mongoose para Node.js o pymongo para Python para conectarte a MongoDB.
  2. Operaciones CRUD: Realiza operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre los documentos en las colecciones de MongoDB.
  3. Endpoints de la API: Define los endpoints de tu API REST que ejecutarán estas operaciones y devolverán los resultados en JSON.

Ejemplo básico en Node.js con Express y MySQL

JavaScript

const express = require('express');
const mysql = require('mysql');
const app = express();
const port = 3000;

const db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'mydatabase'
});

db.connect((err) => {
  if (err) throw err;
  console.log('Connected to MySQL');
});

app.get('/users', (req, res) => {
  const sql = 'SELECT * FROM users';
  db.query(sql, (err, results) => {
    if (err) throw err;
    res.json(results);
  });
});

app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

Ejemplo básico en Node.js con Express y MongoDB

JavaScript

const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = 3000;

mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

const UserSchema = new mongoose.Schema({
  name: String,
  email: String
});

const User = mongoose.model('User', UserSchema);

app.get('/users', async (req, res) => {
  try {
    const users = await User.find();
    res.json(users);
  } catch (err) {
    res.status(500).send(err);
  }
});

app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

Estas son implementaciones básicas, pero te dan una idea de cómo puedes integrar una base de datos MySQL o MongoDB con una API REST.

Aquí tienes ejemplos de cómo conectar y trabajar con bases de datos MySQL y MongoDB utilizando Python.

Ejemplo con MySQL y Python

Para trabajar con MySQL en Python, puedes usar la biblioteca mysql-connector-python. Aquí tienes un ejemplo básico:

  1. Instalación:pip install mysql-connector-python
  2. Código:

Python

import mysql.connector

# Conexión a la base de datos
db = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="mydatabase"
)

cursor = db.cursor()

# Definir un endpoint para obtener usuarios
def get_users():
    cursor.execute("SELECT * FROM users")
    results = cursor.fetchall()
    return results

# Ejemplo de uso
users = get_users()
for user in users:
    print(user)

Ejemplo con MongoDB y Python

Para trabajar con MongoDB en Python, puedes usar la biblioteca pymongo. Aquí tienes un ejemplo básico:

  1. Instalación:pip install pymongo
  2. Código:

Python

from pymongo import MongoClient

# Conexión a la base de datos
client = MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
users_collection = db["users"]

# Definir un endpoint para obtener usuarios
def get_users():
    users = users_collection.find()
    return list(users)

# Ejemplo de uso
users = get_users()
for user in users:
    print(user)

Integración con Flask para crear una API REST

Puedes integrar estos ejemplos con Flask para crear una API REST.

Con MySQL:

  1. Instalación:pip install flask mysql-connector-python
  2. Código:

Python

from flask import Flask, jsonify
import mysql.connector

app = Flask(__name__)

db = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="mydatabase"
)

cursor = db.cursor()

@app.route('/users', methods=['GET'])
def get_users():
    cursor.execute("SELECT * FROM users")
    results = cursor.fetchall()
    return jsonify(results)

if __name__ == '__main__':
    app.run(port=5000)

Con MongoDB:

  1. Instalación:pip install flask pymongo
  2. Código:

Python

from flask import Flask, jsonify
from pymongo import MongoClient

app = Flask(__name__)

client = MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
users_collection = db["users"]

@app.route('/users', methods=['GET'])
def get_users():
    users = users_collection.find()
    return jsonify(list(users))

if __name__ == '__main__':
    app.run(port=5000)

Estos ejemplos te muestran cómo conectar y trabajar con bases de datos MySQL y MongoDB en Python, y cómo exponer estos datos a través de una API REST utilizando Flask. 

Aquí tienes ejemplos de cómo conectar y trabajar con una base de datos SQLite utilizando Python.

Ejemplo con SQLite y Python

Para trabajar con SQLite en Python, puedes usar la biblioteca sqlite3, que viene incluida en la biblioteca estándar de Python.

  1. Instalación: No necesitas instalar nada adicional, ya que sqlite3 viene preinstalado con Python.
  2. Código:

Python

import sqlite3

# Conexión a la base de datos
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# Crear una tabla
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT,
        email TEXT
    )
''')

# Insertar datos
cursor.execute('''
    INSERT INTO users (name, email) VALUES (?, ?)
''', ('John Doe', 'john@example.com'))

conn.commit()

# Definir una función para obtener usuarios
def get_users():
    cursor.execute('SELECT * FROM users')
    return cursor.fetchall()

# Ejemplo de uso
users = get_users()
for user in users:
    print(user)

conn.close()

Integración con Flask para crear una API REST

Puedes integrar este ejemplo con Flask para crear una API REST.

  1. Instalación:pip install flask
  2. Código:

Python

from flask import Flask, jsonify
import sqlite3

app = Flask(__name__)

def get_db_connection():
    conn = sqlite3.connect('mydatabase.db')
    conn.row_factory = sqlite3.Row
    return conn

@app.route('/users', methods=['GET'])
def get_users():
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM users')
    users = cursor.fetchall()
    conn.close()
    return jsonify([dict(ix) for ix in users])

if __name__ == '__main__':
    app.run(port=5000)

Estos ejemplos te muestran cómo conectar y trabajar con una base de datos SQLite en Python, y cómo exponer estos datos a través de una API REST utilizando Flask. 

Publicaciones Similares

  • |

    PHP

    Una inmersión profunda en PHP, el lenguaje de programación de servidor que da vida a WordPress. Exploramos su sintaxis, su capacidad para generar contenido dinámico y cómo su evolución constante sigue siendo crucial para el desarrollo web moderno. Aprende por qué PHP es el motor invisible que transforma código en experiencias de usuario.

  • Inteligencia Artificial

    Introducción La inteligencia artificial (IA) ha emergido como una de las tecnologías más revolucionarias del siglo XXI. Desde sus inicios como una idea futurista hasta convertirse en una realidad palpable, la IA ha demostrado tener un impacto significativo en diversas áreas de la sociedad. Su crecimiento exponencial ha sido impulsado por avances en el aprendizaje…

  • |

    Web 3.0

    Principales características de la Web3: ¿Por qué es importante? La Web3 promete una estructura más segura y libre, donde los usuarios tienen más control sobre sus datos y pueden interactuar de manera más directa y segura23. Esto podría transformar la forma en que usamos internet, haciendo que sea más equitativo y menos dominado por grandes…

  • Mysql

    Descubre los fundamentos de MySQL, el sistema de gestión de bases de datos relacionales más popular del mundo y pilar esencial de WordPress. Analizamos su arquitectura, su importancia en el almacenamiento de datos y cómo optimizar su rendimiento para garantizar la velocidad y estabilidad de tus proyectos web.

  • |

    Optimización Recursos Sistema Linux

    Archivos de Configuración y Scripts Comunes en Bash: Aquí tienes algunos comandos y herramientas que te ayudarán a verificar el uso de recursos en tu servidor Linux: Comandos bash utiles Estos comandos te ayudarán a identificar qué procesos están consumiendo más recursos y si necesitas ajustar algo en tu servidor. Para comprobar la capacidad del…

  • |

    Implementación de un Chat tipo mIRC

    Implementación de un Chat Tipo mIRC con next-mIRC 1. Descargar el Proyecto Primero, necesitas clonar el repositorio de next-mIRC desde GitHub: bash 2. Instalar Dependencias Asegúrate de tener Docker instalado en tu sistema. Luego, instala las dependencias necesarias: bash 3. Construir la Imagen Docker Construye la imagen Docker para el proyecto: bash 4. Ejecutar el…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *