-
Notifications
You must be signed in to change notification settings - Fork 11
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
HH-206678 use fastapi dependencies #683
Conversation
async def execute_page_method_with_dependencies(handler: Any, get_page_method: Callable) -> Any: | ||
request = Request({ | ||
'type': 'http', | ||
'query_string': '', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
мб корректно формировать?
https://github.com/hhru/py-nab/blob/master/frontik-fastapi/ffapi/handler.py#L31-L32
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не очень хочу, это временная штука, когда в след итерации переедем нормально, то реквест будет сразу фастапишный
кстати обратил внимание, что я это добавлял чтобы сделать депенденсю get_current_handler
, а потом забыл и сделал через contextvar, пару строчек выше, переделаю
frontik/dependency_manager.py
Outdated
'handler': handler, | ||
}) | ||
|
||
route = next((rr for rr in handler.router.routes if rr.name == get_page_method.__name__ and rr.path == '/'), None) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не очень понятно, что тут происходит и почему ниже конкретный path = /base
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
это костыль всия руси, мб будут получше предложения
в сервисе вот так бывает базированная страница
class BasePageHandler(FrontikPageHandler):
router = ApiRouter(dependencies=[...])
@router.get('/base', dependencies=[...])
async def get_page(self):
...
страница наследница:
class DoughterPageHandler(BasePageHandler):
router = ApiRouter(dependencies=BasePageHandler.router.dependencies, routes=BasePageHandler.router.routes)
@router.get('/', dependencies=[...])
async def post_page(self):
...
т.е. для этого дочернего класса хендлера у нас будет роутер, в котором нету get_page, и должен браться из родительского.
такчто в дочернем роутере добавляем routes
а может быть так что и в нашей есть get_page и в родительской, как гарантированно получить наш?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а может быть так что и в нашей есть get_page и в родительской, как гарантированно получить наш?
я не до конца понимаю ситуацию чето.
если ты в наследнике переопределил get_page - то всегда его и будешь получать?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
придумал как "нормально" сделать, обновил пр
def delete(self, **kwargs) -> Callable: # type: ignore | ||
return super().delete('', **kwargs) | ||
|
||
def api_route(self, *args, **kwargs): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
это удалится или останется после миграции?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
удалится, это чисто для промежуточного этапа, чтоб людей пока не путать с непонятными path
SonarQube Quality Gate |
https://jira.hh.ru/browse/HH-206678