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

API для нулевого уровня #83

Closed Kraysent closed 4 months ago

Kraysent commented 4 months ago

Для записи на нулевой уровень нужен нормальный способ записи через сетевой интерфейс, чтобы потом можно было легко создавать таблицы скриптами.

Пока что два метода: на создание таблицы со столбцами и метаданными и второй на заполнение таблицы данными по id таблицы.

В рамках этого же тикета хочется сделать клиента для этих двух методов, чтобы была возможность более просто и без дубликации сделать задачи HyperLEDA/scripts#2 и HyperLEDA/scripts#1

Kraysent commented 4 months ago

Пока что я вижу себе создание таблицы на нулевом уровене в следующем виде:

POST /api/v1/table

Ввод

{
    "table_name": "example_table",
    "description": "example description",
    "bibliography_id": 1234,
    "columns": [
        {
            "name": "name",
            "description": "name of the object",
            "type": "str"
        },
        {
            "name": "ra",
            "unit": "deg",
            "type": "double", # формально это почти однозначно определяется из unit, но пока что не хочется этим заниматься
            "description": "right ascension"
        },
        {
            "name": "dec",
            "unit": "deg",
            "type": "double", 
            "description": "declination"
        }
    ]
}

bibliography_id - id, который отдаёт метод создания библиографии (#88).

Вывод

{
    "data": {
        "table_id": "example_table"
    }
}

Тогда в table_id первое время будет просто лежать имя таблицы, потом посмотрим, может можно что-то более подходящее положить.

Kraysent commented 4 months ago

API сделал, осталось только при создании библиографии ходить в ADS по bibcode в рамках HyperLEDA/db-app#87 Эту задачу закрываю