Обложка канала

Ivan Begtin

3903 @begtin

I am focused on Open Data, Procurement, e-Government, Open Government and other tech stuff

Ivan Begtin

4 года назад
Открыть в
В рубрике полезных инструментов для публикации данных roapi [1] фреймворк по публикации статических наборов данных, написан на Rust, а внутри использует Apache Arrow и Datafusion. Автор описывает его как то что не надо написать ни строчки кода что, не совсем так, вместо кода надо писать конфиг на YAML, но даже при этом возможности весьма немалые. Фактически, из коробки, получаем REST API, GraphQL и SQL (через HTTPS и протокол Postgres Wire) для доступа к выбранному набору данных. Можно делать API на основе файлов CSV, JSON, NDJSON (JSON lines), Parquet, баз SQLite и MySQL. Пока это лучший движок для таких задач, по крайней мере по описанию, конечно, ещё надо интенсивно тестировать. Я помню как ещё 10 лет назад командой data.gov публиковался простой PHP скрипт csv-to-api [2], а я лет 9 назад писал простой движок apiready [3] генерировавший чуть более продвинутое API выделяя отдельно справочные значения. Через много лет лично я пришёл к архитектуре: 1) Положи все данные в СУБД 2) Используй обертку вокруг данных в СУБД и написал и опубликовал движок apicrafter [4] позволяющий такую обёртку делать вокруг базы в MongoDB. Но, возможно, roapi - это лучший выбор из имеющихся для табличных данных. Потому что поддержка сразу многих протоколов для доступа к данным имеет значение и упрощает доступ из разных приложений и в разных сценариях использования. Ссылки: [1] https://github.com/roapi/roapi [2] https://github.com/project-open-data/csv-to-api [3] https://github.com/ivbeg/apiready [4] https://github.com/apicrafter/apicrafter #datatools #api #openapi
GitHub - roapi/roapi: Create full-fledged APIs for slowly moving datasets without writing a single line of code.

Create full-fledged APIs for slowly moving datasets without writing a single line of code. - GitHub - roapi/roapi: Create full-fledged APIs for slowly moving datasets without writing a single line ...

GitHub