Я использовал swagger CLI для генерации кода go для вызова моего приложения фляги. Swagger Codegen преобразует fields.Raw
тип, определенный с flask_restplus
модель в *interface{}
в ход
присвоение значения полю с типом * interface {} в go возвращает обратно
prog.go: 18: 26: невозможно использовать notebook_spec_secrets (введите
map [string] string) как тип * interface {} в присваивании: * interface {}
указатель на интерфейс, а не интерфейс
Вы можете проверить это здесь
https://play.golang.org/p/sFE9Qr-72_G
Быстрое и грязное исправление будет изменять сгенерированный код с помощью swagger cli и change
NotebookSpec * interface {}
до
NotebookSpec interface {}
Возможно ли преобразовать словарь в * interface {} в go? (мой поиск в Google показывает, что указатель на интерфейс в go неверен и логически неверен)
Как определить поле словаря с помощью flask-restplus
run_definition = api.model('Run definition',
{
'notebook_spec_secrets':
fields.Raw(required=False,
example={
"eventhub_source_cs": "Endpoint=sb://xxxx.servicebus.windows.net/;SharedAccessKeyName=xxxx;SharedAccessKey=xxxx=;EntityPath=sourceeh",
"eventhub_destination_cs": "Endpoint=sb://xxxx.servicebus.windows.net/;SharedAccessKeyName=xxxx;SharedAccessKey=xxxx=;EntityPath=desteh",
"adl2_destination_oauth2_clientid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"adl2_destination_oauth2_clientsecret": "xxxx=",
"adl2_destination_oauth2_tenantid": "xxxx=",
"adl2_destination_cs": "abfss://<file-system-name>@<storage-account-name>.dfs.core.windows.net/folder1",
})})