Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Зависимости для пакета vibe-d неправильно заданы (dub.sdl) #1

Closed
denizzzka opened this issue Sep 19, 2016 · 4 comments

Comments

@denizzzka
Copy link

No description provided.

@denizzzka
Copy link
Author

Добавил зависимость version="*" и сервер не собрался:

$ dub build --config=server
Performing "debug" build using dmd for x86_64.
vibe-d:utils 0.7.29: building configuration "library"...
vibe-d:data 0.7.29: building configuration "library"...
vibe-d:core 0.7.29: building configuration "libevent"...
vibe-d:http 0.7.29: building configuration "library"...
vibe-d:diet 0.7.29: building configuration "library"...
vibe-d:mail 0.7.29: building configuration "library"...
vibe-d:mongodb 0.7.29: building configuration "library"...
vibe-d:redis 0.7.29: building configuration "library"...
vibe-d:web 0.7.29: building configuration "library"...
vibe-d 0.7.29: building configuration "libevent"...
restexample ~master: building configuration "server"...
../../.dub/packages/vibe-d-0.7.29/vibe-d/source/vibe/web/rest.d(252,26): Error: template vibe.web.rest.serveRestJSClient cannot deduce function from argument types !()(RestInterfaceSettings), candidates are:
../../.dub/packages/vibe-d-0.7.29/vibe-d/source/vibe/web/rest.d(213,27):        vibe.web.rest.serveRestJSClient(I)(RestInterfaceSettings settings) if (is(I == interface))
../../.dub/packages/vibe-d-0.7.29/vibe-d/source/vibe/web/rest.d(241,27):        vibe.web.rest.serveRestJSClient(I)(URL base_url)
../../.dub/packages/vibe-d-0.7.29/vibe-d/source/vibe/web/rest.d(248,27):        vibe.web.rest.serveRestJSClient(I)(string base_url)
source/app.d(16,57): Error: template instance vibe.web.rest.serveRestJSClient!(IModel) error instantiating
Compiling diet template 'index.dt'...
dmd failed with exit code 1.

(клиент собирается ок)

@denizzzka
Copy link
Author

Вообще, я пытаюсь посмотреть как выглядит REST-ответ сервера, так что, если можете сдампать его то буду признателен)

@deviator
Copy link
Owner

да, согласен, просто я правил пару вопросов в vibe-d, связанных с rest, pr
прямо сейчас Вы можете использовать коммит f24a7e0 (предыдущий с комментарием final)
через несколько минут откачу состояние репозитария, чтобы можно было собирать из head

@deviator
Copy link
Owner

@denizzzka REST ответ в теле содержит сериализованный тип данных, возвращаемый методом интерфейса (если это строка, то она в двойных кавычках, если число -- без кавычек, если структура, то как json-объект), content-type application/json и, кажется, всё.

Код, который выдал у Вас ошибку, натыкается на баг в текущей реализации vibe-d (даже не баг, а просто недоразумение: забыли инстанцировать основной метод serveRestJSClient внутри перегруженного вспомогательного метода). Так же есть проблемы в генерации js клиента:

  1. методы, возвращающие интерфейсы неправильно преобразуются в js
  2. параметры, передаваемые в url в get запросе не могут быть объектами, так как вписываются в строку url не верно
    это поправлено в моём pull request, но пока он не одобрен

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants