prawn-cake / vk-requests

vk.com requests for humans. API library for vk.com
MIT License
158 stars 22 forks source link

Improvment #15

Closed ghost closed 7 years ago

ghost commented 7 years ago

https://github.com/prawn-cake/vk-requests/issues/14#issuecomment-260118660

prawn-cake commented 7 years ago

Имеет смысл избавиться от InteractiveVKSession, оставить только VKSession с параметром в конструкторе, но не имеет смысла в принципе держать это в create_api. Суть этого метода-фабрики - упростить создание api инстанса, пользователь должен делать минимум телодвижений чтобы начать работать с библиотекой, поэтому добавление опциональных классов в параметры выглядит усложняющим (с версии 0.9.7 session_cls deprecated кстати, рекомендуется использовать interactive флаг вместо этого). Если действительно нужно сделать какую-то кастомную логику создания, то всегда можно реализовать свой create_api метод в своем коде

ghost commented 7 years ago

В принципе юзеру не придется делать лишних телодвижений, можно оставить тот же флаг interactive и для него ничего не поменяется, а при создании кастомной логики удобней указать только класс аутентификации, а не писать свой create_api.

prawn-cake commented 7 years ago

Это будет усложнение и едва ли будет работать, разве только путать пользователя. Сейчас interactive по сути говорит использовать InteractiveVKSession --> InteractiveAuthAPI

Что по твоему должно случится если я, например сделаю так: create_api(interactive=True, auth_api_cls=MyCustomApiClass) ? Ну т.е логика уже двусмысленна, чтобы она была очевидна, нужно оставить только auth_api_cls, но тогда понадобится доп импорт, от которого как раз таки хочется избавиться. При создании кастомной логики ты уже делаешь лишние телодвижения, поэтому в этом случае следует создавать инстанс вручную

session = VKSession(auth_api_cls=MyCustomApiClass)
api = API(session=session)

Явное лучше неявного ;)

ghost commented 7 years ago

Ну хотя да, ты прав:)