Dependências e extensões
Mostra de que um módulo depende, quem depende dele, e os pontos de extensão que os módulos podem usar.
Alguns módulos só funcionam com outros (o pagamento em lote de sellers depende do módulo de repasses a sellers, por exemplo). Antes de instalar ou remover, pergunte à plataforma se pode. Os pontos de extensão são os lugares do painel e da loja onde um módulo pode se plugar (uma aba no formulário de produto, um item no menu).
Dependências do módulo
/api/v1/admin/modules/{moduleId}/dependenciesAdminPode instalar? Pode remover?
Parâmetros de caminho
moduleIduuidobrigatórioId do módulo no catálogo central (campo
id de Catálogo de módulos). Não é o slug.Exemplo de requisição (dependências)
bash
curl "$BASE_URL/api/v1/admin/modules/2c7168e9-7572-4e6b-9615-9758d55e9e35/dependencies" \
-H "Authorization: Bearer $TOKEN"Resposta (dependências)
200Verificação
json
{
"can_install": false,
"missing_deps": ["vendor-payouts"],
"can_uninstall": true
}Campos da resposta
can_installbooleantrue se todas as dependências estão atendidas.missing_depsarraySlugs das dependências ainda não instaladas. Ausente quando não há.
can_uninstallbooleantrue se nenhum módulo instalado depende deste.blocked_by_modulesarraySlugs dos módulos que impedem a remoção. Ausente quando não há.
Erros (dependências)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 404 | O módulo não existe. | {"error":"module not found"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Quem depende do módulo
/api/v1/admin/modules/{moduleId}/dependentsAdminQuais módulos dependem deste
Parâmetros de caminho
moduleIduuidobrigatórioId do módulo no catálogo central (campo
id de Catálogo de módulos). Não é o slug.Exemplo de requisição (dependentes)
bash
curl "$BASE_URL/api/v1/admin/modules/f72a3022-fcbd-4b2e-a516-8de94828357e/dependents" \
-H "Authorization: Bearer $TOKEN"Resposta (dependentes)
200Dependentes
json
{
"module_id": "f72a3022-fcbd-4b2e-a516-8de94828357e",
"module_slug": "metrics-config",
"dependents": [],
"total": 0
}Campos da resposta
module_iduuidO módulo consultado.
module_slugstringSlug dele.
dependentsarrayMódulos que o declaram como dependência:
id, name, slug e install_status.totalintegerQuantidade.
Erros (dependentes)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 404 | O módulo não existe. | {"error":"module not found"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Pontos de extensão
/api/v1/admin/modules/extension-pointsAdminPontos de extensão da plataforma
Exemplo de requisição (extensões)
bash
curl "$BASE_URL/api/v1/admin/modules/extension-points" \
-H "Authorization: Bearer $TOKEN"Resposta (extensões)
200Pontos de extensão
json
{
"extension_points": [
{ "name": "admin.sidebar.items", "description": "Add menu items to the admin sidebar navigation", "category": "admin" },
{ "name": "checkout.validation", "description": "Add validation steps to the checkout flow (e.g. CPF verification, age check)", "category": "checkout" }
],
"total": 13
}Campos da resposta
extension_pointsarrayOs pontos registrados (hoje 13).
extension_points[].namestringNome do ponto, no formato
area.lugar (storefront.product_card.badges).extension_points[].descriptionstringPara que serve. Em inglês.
extension_points[].categorystringadminstorefrontcheckoutadmin, storefront ou checkout.totalintegerQuantidade.
Erros (extensões)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |