Saltar al contenido principal

wiki-API-Ref

Ver en Git


API Ref

mFE Manager

API

En los endpoints para admins, en caso de respuesta con http_status_code != 200, se incluye un body application/json con info. Mostrar al usuario el body.code y body.info.

Objetos:

project = {
"project_id": "",
"project_name": "",
"private": true,
"description": "",
"created_at": "2023-01-01T00:01:02Z"
}

mFE = {
"mfe_id": "",
"mfe_name": "",
"description": "",
"route": "",
"versions": [{}, {}, ...], // array de objetos versiones,
"created_at": "2023-01-01T00:01:03Z"
}

version_data = {
"location": "url",
"entry_file": "",
"zip_file": "", // pattern: ^.+\.zip$
"version": "X.X.X",
"name": {"default": "nombre", ...}
}

version = {
"version": "1.0.0",
"branch_name": "test-123",
"commit_hash": "1a3s47va9s",
"commit_msg": "fix de tal cosa",
"private": true,
"in_s3": true,
"location": "/source/public/asd/1.0.2",
"data": {}, // objeto de version_data
"created_at": "2023-01-01T00:01:04Z"
}

view = {
"project_id": "",
"project_name": "",
"mfe_id": "",
"mfe_name": "",
"version": "1.0.0",
"location": "/source/public/asd/1.0.2",
"route": "/route",
"data": {},
"last_deployment": "2023-01-01T00:01:04Z",
"created_at": "2023-01-01T00:01:04Z"
}

mFE_consumer = {
"version": "",
"location": "/source/public/asd/1.0.2",
"route": "/route",
"data": {},
"mfe_id": "",
"mfe_name": ""
}

Projects

Create project

endpoint interno. solo admins pueden consultarlo

POST /projects

Body:

{
"project_name": "auraview",
"private": true,
"description": "auraview para prod"
}

Response:

{"info": "project_created", "data": {"project": {}}} // objeto project
Get projects

endpoint interno. solo admins pueden consultarlo

GET /projects

Response:

{"info": "projects", "data": {"projects": [{}, {}]}} //objetos project

mFE

Get mFEs

endpoint interno. solo admins pueden consultarlo

GET /mfes

Response:

{"info": "microFrontEnds", "data": {"mfes": [{}, {}]}} //objetos mFE
Create mFE

endpoint interno. solo admins pueden consultarlo

POST /mfes

Body:

{
"mfe_name": "",
"description": "",
"route": ""
}

Si no se envía route, se toma mfe_name. Para ambos solo se permiten los caracteres _-, a-z, 0-9. Response:

{"info": "microFrontEnd created", "data": {"mfe": {}}} //objeto mFE
Modify mFE

endpoint interno. solo admins pueden consultarlo

PATCH /mfes

Body:

{
"mfe_id": "",
"route": "", // optional
"description": "" // optional
}

Puede enviarse route, description o ambos.

Response:

{"info": "microFrontEnd updated", "data": {"mfe": {}}} //objeto mFE

Versions

Get Versions

endpoint interno. solo admins pueden consultarlo

GET /mfes/<mfe_id>/versions

Response:

{"info": "versions", "data": {"versions": [{}, {}, {}]}} //objetos version
Create version

endpoint interno. solo admins pueden consultarlo

POST /mfes/<mfe_id>/versions

Body: multipart/form-data

file: archivo .zip
commit_hash: 1cs546aca211
commit_msg: mensaje
branch_name: test-hola

El archivo zip debe tener en el root todos los archivos de la versión. Se valida que haya un version.config.json en el root, que dentro sea un JSON válido y tenga los parámetros obligatorios de un version_data

Response:

{
"info": "version created",
"data": {
"mfe_id": "",
"version": {} // objeto version
}
}

Views

Esto es básicamente obtener las versiones deployadas y deployar.

Get Views

Se obtienen las versiones de mFE deployadas para cada proyecto

endpoint interno. solo admins pueden consultarlo

GET /projects/<project_id>/views

Response:

{"info": "versions", "data": {"views": [{}, {}, {}]}} //objetos view
Create View

Al crear una view para un mFE que ya se encuentra deployado, se reemplaza.

endpoint interno. solo admins pueden consultarlo

POST /projects/<project_id>/deployment

Body:

{
"mfe_id": "",
"target_version": "1.0.0"
}

Response:

{"info": "deployed", "data": {"view": {}}} // objeto view

Error codes:

  • INVALID_VIEW: Si no se puede generar la vista. Ej: Si se intenta colocar una versión privada en un proyecto público
Delete View

endpoint interno. solo admins pueden consultarlo

DELETE /projects/<project_id>/deployment

Body:

{
"mfe_id": ""
}

Response:

{"info": "deleted", "data": {"view": {}}} // objeto view

Consumer

Este es el endpoint público para que los clientes obtengan las Views.

endpoint público. cualquiera con el project_id puede consutlarlo.

GET /projects/<project_id>/microFrontends

Response:

{"microFrontends": [{}, {}]} //objetos mFE_consumer