Ir al contenido

DELETE /api/emisores/certificado/{id}/

DELETE /api/emisores/certificado/{id}/

Consulta y baja de certificados; la escritura entra solo por cargar.

No es un ModelViewSet a propósito. La única forma de que un .p12 llegue a la base es cargar, que valida el archivo (validar_pkcs12: integridad, clave, vigencia, llave RSA y NIT del emisor) y exige que Backblaze B2 esté configurado para no dejar material criptográfico en disco local. Mientras esto fue un ModelViewSet, PUT y PATCH seguían publicados y rodeaban las dos comprobaciones: bastaba un PATCH con un archivo nuevo para guardarlo sin validar, o un PATCH de emisor para mover el certificado a otro emisor del alcance.

Por eso quedan solo list, retrieve, destroy y cargar. No hay edición: el alias se fija al subir, y el certificado se reemplaza borrando el que hay y cargando el nuevo.

Tampoco hay un create que devuelva un 405 con la pista de cargar: el router decide qué verbos monta mirando si el viewset tiene el método, no de qué mixin viene, así que definirlo volvería a publicar POST en la ruta de lista y drf-spectacular lo documentaría como una creación normal.

operationId: emisores_certificado_destroy

Cualquiera de estas credenciales:

  • LlaveApi — Llave de API de una integración. El valor completo es Api-Key <prefijo>.<secreto>, tal como lo imprime manage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
NombreEnTipoObligatorioDescripción
idpathintegerUn valor de entero único que identifique este certificado digital.
Ventana de terminal
curl -X DELETE "https://api.rededoc.uk/api/emisores/certificado/<id>/" \
-H "Authorization: <llaveapi>"
CódigoDescripción
204No response body
401Error
404Error
429Error
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}

RedEDoc es un servicio de Semántica Digital S.A.S.