Pruebas API desde linea de comandos
Para realizar estas pruebas necesitaremos un certificado cuyo NIF asociado esté dado de alta en la sede como representante de alguna de las empresas.
Vamos a utilizar cURL para realizar las pruebas con un certificado en formato PEM.
Si nuestro certificado no está en formato PEM necesitaremos convertirlo.
La conversión la hemos realizado utilizando OpenSSL
Conversión certificado
openssl pkcs12 - in ACA.p12 -out cert.pem -clcerts |
Para realizar la conversión nos pedirá la clave del certificado y la clave que queremos utilizar en el certificado exportado.
Enter Import Password: MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
Una vez hemos obtenido el certificado en formato PEM podremos realizar las peticiones que necesitemos.
Petición
curl -E cert.pem https://apipre.cnmc.gob.es/test/v1/echoseguro/hello%20world |
Nos solicitará la clave del certificado
Enter PEM pass phrase:
Y si todo ha ido bien podremos ver el resultado de nuestra petición
{"loginId":"11111111H","mensaje":"hello world"}
Si el servidor contra el que hacemos las peticiones no tiene un certificado valido cURL nos devolvera un error
curl: (60) SSL certificate problem: self signed certificate More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
Este mensaje de error podremos evitarlo utilizando la opción -k
Ejemplos
Prueba subida ficheros.
Para subir un fichero utilizaremos la Api de Carga
Como en el ejemplo anterior utilizamos curl y un certificado pem. También necesitamos un fichero, en este caso utilizaremos un fichero xml del SGDA
La llamada en este caso será:
curl -i -X POST -H "Content-Type: multipart/form-data" " https://apipre.cnmc.gob.es/carga/v1/cargar_fichero_completo?nifPresentador=86745829H&nifEmpresa=11111111H&tipoFichero=SGDA&numeroBytes=1111&nombreFichero=test.xml&idProcedimiento=1" -F "File=@c:\test.xml" -E c:\cert.pem -k |
En la url hemos parametrizado los datos que necesita la carga express. Sustituya el nifPresentador, el nifEmpresa, el número de bytes del fichero a subir y el nombre del fichero.
Si todo va bien obtendremos la respuesta de la api, en este caso un código http 200
HTTP/1.1 100 Continue HTTP/1.1 200 OK
Listar pendientes
Para consultar los ficheros pendientes de descarga asociados a un procedimiento <IDPROCEDIMIENTO> y a una empresa de NIF <NIFEMPRESA>, puede emplear la operación de la api listar_pendientes.
Como en el ejemplo anterior utilizamos curl y un certificado pem.
La llamada sería:
curl -i -X POST -E cert.pem https://api.cnmc.gob.es/ficheros/v1/listar_pendientes/<IDPROCEDIMIENTO>/<NIFEMPRESA> -k |
Consultar
Ejemplo de la operación de la API consultar para consultar los ficheros descargados o descargables de manera genérica, asociados a un procedimiento <IDPROCEDIMIENTO> y a una empresa de NIF <NIFEMPRESA>.
Como en el ejemplo anterior utilizamos curl y un certificado pem.
La llamada, para consultar los ficheros en cualquier estado, sería:
curl -i -X POST -E cert.pem -k -d "idProcedimiento=<IDPROCEDIMIENTO>&nifEmpresa=<NIFEMPRESA>&estado=" https://api.cnmc.gob.es/ficheros/v1/consultar |
Descargar
Ejemplo de descarga de un fichero por identificador uuid.
Como en el ejemplo anterior utilizamos curl y un certificado pem.
curl -i -E cert.pem -k https://api.cnmc.gob.es/ficheros/v1/descarga/{uuid}/ |