[Aportes] Argentum Online RESTful API

recox

Argentum Online Libre
Argentum Online API

Que es una API:
Un API (Access Point Interface) es la interfaz que un software utiliza para interactuar con otro software.

Esta es la API Publica para poder utilizar todos los datos de servidor e utilizarlos en sus clientes, paginas web para poder:

Hacer un login de las cuentas
Modificaciones de personajes
Ver que usuarios estan online
Cuantos usuarios online hay al momoento
Ver rankings de jugadores
Interconexiones de cuentas entre servidores e incluso entre diferentes plataformas de Argentum Online
Crear un administrador web para poder modificar los datos de servidor
Las opciones son infinitas...

A modo de ejemplificar con desarrollos reales lo que puse arriba cree un grafico para que vean lo que se puede hacer potencialmente con una API entre diferentes aplicaciones

(aclaro que este diagrama no existe a excepcion de la integracion de cuentas con los servers visual basic 6, esto es solo para ejemplificar lo que se podria hacer con una API):


Se utiliza como base de datos la creada en el proyecto Argentum Online Libre, aqui pueden ver la estructura utilizada en la base de datos, les aconsejo en caso que quieran crear un PORT a otro lenguaje de AO o algun desarrollo relacionado con AO como implementar una base de datos en algun cliente X que elijan usen esta normalizacion para que sea mas facil integrar servicios.
https://github.com/ao-libre/ao-server/blob/master/Fixtures/fixture.sql


En esta documentacion estan los endpoints existentes:
https://ao-libre.github.io/ao-api-server/index.html

Desde aqui pueden consumir la API, por ejemplo aqui enlista todos los personajes creados.
https://api.argentumonline.org/api/v1/users/all

Resultado Get All Users:
[
  {
    "id": 1,
    "name": "Luzbelito",
    "level": 1,
    "exp": 0,
    "elu": 300,
    "genre_id": 1,
    "race_id": 3,
    "class_id": 1,
    "home_id": 1,
    "description": "",
    "gold": 0,
    "bank_gold": 0,
    "pos_map": 286,
    "pos_x": 50,
    "pos_y": 66,
    "body_id": 3,
    "killed_npcs": 0,
    "killed_users": 0,
    "counter_connected": 0,
    "is_logged": 0,
    "min_hp": 17,
    "max_hp": 17,
    "min_man": 57,
    "max_man": 57,
    "min_sta": 40,
    "max_sta": 40,
    "min_ham": 100,
    "max_ham": 100,
    "min_sed": 100,
    "max_sed": 100,
    "min_hit": 1,
    "max_hit": 2,
    "head_id": 203,
    "weapon_id": 12,
    "helmet_id": 2,
    "shield_id": 2,
    "pertenece_consejo_real": 0,
    "pertenece_consejo_caos": 0,
    "pertenece_caos": 0,
    "pertenece_real": 0,
    "ciudadanos_matados": 0,
    "criminales_matados": 0,
    "is_dead": 0,
    "is_ban": 0
  },
  {
    "id": 2,
    "name": "recox",
    "level": 1,
    "exp": 0,
    "elu": 300,
    "genre_id": 2,
    "race_id": 1,
    "class_id": 2,
    "home_id": 1,
    "description": "",
    "gold": 0,
    "bank_gold": 0,
    "pos_map": 1,
    "pos_x": 36,
    "pos_y": 82,
    "body_id": 1,
    "killed_npcs": 0,
    "killed_users": 0,
    "counter_connected": 0,
    "is_logged": 0,
    "min_hp": 17,
    "max_hp": 17,
    "min_man": 50,
    "max_man": 50,
    "min_sta": 60,
    "max_sta": 60,
    "min_ham": 90,
    "max_ham": 100,
    "min_sed": 90,
    "max_sed": 100,
    "min_hit": 1,
    "max_hit": 2,
    "head_id": 70,
    "weapon_id": 12,
    "helmet_id": 2,
    "shield_id": 2,
    "pertenece_consejo_real": 0,
    "pertenece_consejo_caos": 0,
    "pertenece_caos": 0,
    "pertenece_real": 0,
    "ciudadanos_matados": 0,
    "criminales_matados": 0,
    "is_dead": 0,
    "is_ban": 0
  }
]

Codigo fuente:

Esta desarrollado en Node.js/Express.js
NodeJS: Es una plataforma o entorno de ejecucion para desarrollar con javascript del lado del servidor.
ExpressJS: Es un framework sobre nodejs que nos permite trabajar con el protocolo http y tener sistemas de rutas.
MySql para las queries.

Utiliza la especificacion de JSON:API (https://jsonapi.org/)

El codigo fuente como siempre es libre y pueden encontrarlo aqui:

https://github.com/ao-libre/ao-api-server

Como siempre cualquier modificacion es recibida mediante Pull Requests.
 
Última edición:
Arriba