Использование DA для Revit в Autodesk Forge. Мой код создан и протестирован локально, и я пытаюсь развернуть его в тестовом приложении, но натолкнулся на небольшую загвоздку и не уверен, где я ошибаюсь. Я создал приложение Forge, создал и загрузил пакет, создал псевдоним для пакета, но теперь я пытаюсь создать действие, и оно возвращает неверный запрос, но не знаю почему.
Я использую Insomnia для моего тестирования, поэтому вот показания временной шкалы для моего запроса (с удаленными токенами et c.):
* Preparing request to https://developer.api.autodesk.com/da/us-east/v3/activities
* Using libcurl/7.57.0-DEV OpenSSL/1.0.2o zlib/1.2.11 libssh2/1.7.0_DEV
* Current time is 2020-05-05T18:30:00.962Z
* Disable timeout
* Enable automatic URL encoding
* Enable SSL validation
* Enable cookie sending with jar of 3 cookies
* Connection 31 seems to be dead!
* Closing connection 31
* Trying 52.21.0.245...
* TCP_NODELAY set
* Connected to developer.api.autodesk.com (52.21.0.245) port 443 (#32)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: **removed**
* CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: businessCategory=Private Organization; jurisdictionC=US; jurisdictionST=Delaware; serialNumber=2401504; C=US; ST=California; L=San Rafael; O=Autodesk, Inc.; OU=MCP-ASRD-CP; CN=developer.api.autodesk.com
* start date: Feb 24 00:00:00 2020 GMT
* expire date: Mar 22 12:00:00 2021 GMT
* subjectAltName: host "developer.api.autodesk.com" matched cert's "developer.api.autodesk.com"
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 Extended Validation Server CA
* SSL certificate verify ok.
> POST /da/us-east/v3/activities HTTP/1.1
> Host: developer.api.autodesk.com
> User-Agent: insomnia/7.1.1
> Cookie: PF=**removed**
> Content-Type: application/json
> Authorization: Bearer **removed**
> Accept: */*
> Content-Length: 592
| {
| "id":"RunChecks",
| "commandLine":["$(engine.path)\\\\revitcoreconsole.exe /i $(args[rvtFile].path) /al $(appbundles[ModelChecker].path)"],
| "paremeters": {
| "rvtFile": {
| "zip": false,
| "ondemand": false,
| "verb": "get",
| "description": "Input Revit Model",
| "required":true,
| "localName": "$(rvtFile)"
| },
| "result": {
| "zip": false,
| "ondemand": false,
| "verb": "put",
| "description": "Results",
| "required":true,
| "localName": "Report.xml"
| }
| },
| "engine": "Autodesk.Revit+2021",
| "appbundles": ["BIT.ModelChecker+dev"],
| "description":"Runs model checks"
| }
* upload completely sent off: 592 out of 592 bytes
< HTTP/1.1 400 Bad Request
< Content-Type: application/json; charset=utf-8
< Date: Tue, 05 May 2020 18:30:01 GMT
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< Via: 1.1 824fe21e467658628899bdd8725649ee.cloudfront.net (CloudFront)
< x-amz-apigw-id: MEiKjFSroAMF20A=
< X-Amz-Cf-Id: mwq0J1Q567VwiT7nGfKuSPdrctm5Cv-AxbVpV6KhA6ZbZiTM-mAkCw==
< X-Amz-Cf-Pop: IAD89-C1
< x-amzn-Remapped-Content-Length: 90
< x-amzn-RequestId: 761a452d-2bde-4e8f-987c-fb9d4f25ce7b
< X-Amzn-Trace-Id: Root=1-5eb1b0a9-b01c07c62357bb2604081bf6
< X-Cache: Error from cloudfront
< Content-Length: 90
< Connection: keep-alive
* Received 90 B chunk
* Connection #32 to host developer.api.autodesk.com left intact
Ответ - 400 со следующим телом:
{
"commandLine": [
"Value cannot be null. (Parameter 'source')\n (Parameter 'commandLine')"
]
}
Я взял это из примера здесь и просто изменил, чтобы использовать мои собственные псевдонимы, et c.
Я вижу, что source
и commandLine
не могут быть null, но source
нигде не упоминается в документации, которую я могу найти, и его нет в примере, поэтому я не уверен, что это такое, а commandLine
установлен так же, как в примере ...
Где я ошибаюсь?