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

  • Docker y Docker-compose

    La idea de Docker, es la de crear aplicaciones/servicios que sean independientes y portables. Esto es, no importa que sistema operativo utilices o con que hardware cuentas, si puedes instalar docker, entonces podras correr tus contenedores en él. Entre las ventajas de usar docker, se encuentra la de olvidarte de instalar dependencias (ejemplo nodejs, java,…

  • Manual apache2

    Version Para verificar la versión de Apache en Linux, puedes utilizar los siguientes comandos en la terminal, dependiendo de la distribución que estés utilizando: Esto proporcionará la misma información sobre la versión de Apache. Para obtener detalles desde el administrador de paquetes (usando el comando apt): 2. En distribuciones basadas en RHEL/Fedora/CentOS (como Fedora, CentOS, AlmaLinux y Rocky Linux): Instalacion Con…

  • Mysql

    Verificar Servicio Para verificar si el servicio MySQL está activo, puedes utilizar varios comandos dependiendo del sistema operativo que estés utilizando. Aquí te dejo algunos métodos: En Linux En Windows En ambos sistemas Mostrar bases de datos Para mostrar las bases de datos que tienes en MySQL, puedes usar el siguiente comando en la consola…

  • 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…

  • Python

    Python: —— 1. Como ejecutar python en linux: – Abrir una terminal – Verificar la instalación de python: python3 –version – Ejecutar un script de python: * Navega hasta el archivo: cd /ruta/del/archivo * Ejecuta el archivo con el comando python3: python3 mi_archivo.py – Hacer el script ejecutable (opcional): Si deseas ejecutar el script sin…

  • |

    PHP

    PHP está diseñado para ser fácil de aprender y potente en su aplicación, lo que lo convierte en una opción popular para desarrolladores de todos los niveles. Aquí tienes algunos aspectos básicos: Comentarios: Puedes agregar comentarios en tu código PHP para hacerlo más legible. Los comentarios de una sola línea comienzan con //, mientras que los comentarios…

564 comentarios

Deja una respuesta

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