wiki-API-Ref
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_idpuede consutlarlo.
GET /projects/<project_id>/microFrontends
Response:
{"microFrontends": [{}, {}]} //objetos mFE_consumer