Testar e ligar
Executa um código de teste sem salvar e liga ou desliga um script já salvo.
Duas operações do dia a dia: validar um código com dados de exemplo antes de colocá-lo no ar e ligar ou desligar um script que já existe. Exigem manage_scripts ou manage_settings.
Testar a seco
O código roda na mesma sandbox dos scripts reais, com test_input disponível como a variável global input. Nada é gravado e nenhum efeito sai da sandbox.
/api/v1/admin/scripts/dry-runAdminExecuta um código sem salvá-lo
Corpo da requisição
extension_pointstringobrigatórioon_checkout_validateon_price_calculateon_shipping_filteron_payment_filteron_order_status_changeon_vendor_commissionon_product_displayon_custom_validationon_search_booston_event_triggerPonto de extensão simulado. Obrigatório.
codestringobrigatórioCódigo a executar. Obrigatório.
test_inputobjectDados de exemplo, disponíveis como
input. Padrão: {}. O formato real de input depende do ponto de extensão.Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/scripts/dry-run" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"extension_point": "on_checkout_validate", "code": "console.log(input.cart_total); ({valid: input.cart_total < 10000})", "test_input": {"cart_total": 15000}}'Resposta
200Execução (sucesso)
json
{
"output": {
"valid": false
},
"duration": 25817445,
"memory_used": 212552,
"logs": [
"15000"
],
"success": true
}Campos da resposta
successbooleantrue se o código terminou sem erro.outputanyO resultado: o valor da variável global
result se existir; senão o valor da última expressão do script; senão null.durationintegerTempo de execução em nanossegundos.
memory_usedintegerMemória alocada, em bytes.
logsarrayO que o código escreveu com
console.log, console.warn (prefixo [WARN]) e console.error (prefixo [ERROR]). Ausente se não escreveu nada.errorstringMensagem do erro quando
success é false.200Execução (falha no código)
json
{
"output": null,
"duration": 100000000,
"memory_used": 0,
"error": "script execution timed out after 100ms",
"success": false
}Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_scripts","manage_settings"]} |
| 400 | Corpo inválido, ou code ou extension_point ausente. | {"error":"code is required"} |
Ligar e desligar
/api/v1/admin/scripts/{id}/toggleAdminLiga ou desliga um script
Parâmetros de caminho
iduuidobrigatórioId do script.
Corpo da requisição
is_activebooleanpadrão: falsetrue liga, false desliga. Se omitido, vale false.Exemplo de requisição
bash
curl -X PUT "$BASE_URL/api/v1/admin/scripts/5be3d1d8-44b9-49d2-83be-e1fd9bec2ce7/toggle" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"is_active": true}'Resposta
200Alterado
json
{
"message": "script enabled"
}Campos da resposta
messagestringscript enabled ou script disabled.Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_scripts","manage_settings"]} |
| 400 | Corpo inválido. | {"error":"invalid request body","detail":"..."} |
| 500 | Script inexistente ou id inválido. | {"error":"failed to toggle script","detail":"script ... not found"} |