HyperLEDA / db-app

Backend for HyperLeda astronomical database of extragalactic objects
https://hyperleda.github.io/db-app/
MIT License
0 stars 0 forks source link

Python-клиент для API нулевого уровня #86

Closed Kraysent closed 4 months ago

Kraysent commented 4 months ago

После выполенения #83 для удобства пользования API нужно будет сделать клиент для загрузки данных и даже потенциально выложить его на PyPi для того, чтобы его можно было устанавливать через pip.

Хочется изначально сделать его в таком формате, чтобы в дальнейшем его можно было встроить в astroquery: https://astroquery.readthedocs.io/en/latest/index.html

Kraysent commented 4 months ago

Пока что кажется что в нём должно быть 5 методов:

Kraysent commented 4 months ago

Хочется попробовать заиспользовать кодогенерацию тут и не мучаться с поддержкой конкретных endpoint-ов.

Генерация клиента из openapi3 спеки: https://github.com/openapi-generators/openapi-python-client/tree/main

Сейчас мы генерируем openapi2 спеку, есть два варианта решения проблемы:

Kraysent commented 4 months ago

В итоге хочу сделать частичную кодогенерацию: генерировать модель из библиотеки https://github.com/koxudaxi/datamodel-code-generator А методы написать нормальные.

Указанная в прошлом комментарии библиотека очень много всего лишнего генерит и в итоге даёт не очень удобный клиент, просто генерировать модели в dataclass'ы выглядит попроще и более легко для поддержания.

Kraysent commented 4 months ago

По мере появления новых стабильных методов API будем дописывать этот клиент, пока задачу закрываю