ivpk / uapi

Universal Application Programming Interface (UAPI)
0 stars 1 forks source link

Objekto apibrėžimas #9

Closed sirex closed 1 month ago

sirex commented 4 months ago

UDTS specifikacijoje, labai svarbi savoka yra objektas, kuris atitinka Belgų Document.

Nereikia painioti su object duomenų tipu, kas yra skirtings dalykas.

Objektas turi tokius atributis:

Taip pat reikėtu nepainioti objekto ir resurso, tarkime turime tokį pavyzdį:

{
    "_type": "datasets/gov/example/City",
    "_id": "6440f1a5-41f4-4b53-b7f8-ce72aae3aa45",
    "_revision": "37843ddd-2271-49d3-827f-b7b76f998e49",
    "_txn": "ff4e4c04-dfde-494e-8b7e-8b35f9cf1b93",
    "name": "Vilnius",
    "country": {
        "_type": "datasets/gov/example/Country",
        "_id": "f0776c84-2761-45b8-8ae6-f95abf1495cb",
        "name": "Lietuva"
    }
}

Pavyzdyje aukščiau turime vieną resursą:

{
    "_revision": "37843ddd-2271-49d3-827f-b7b76f998e49",
    "_txn": "ff4e4c04-dfde-494e-8b7e-8b35f9cf1b93"
}

Ir turime du objektus:

{
    "_type": "datasets/gov/example/City",
    "_id": "6440f1a5-41f4-4b53-b7f8-ce72aae3aa45",
    "name": "Vilnius",
    "country": {...}
}
{
    "_type": "datasets/gov/example/Country",
    "_id": "f0776c84-2761-45b8-8ae6-f95abf1495cb",
    "name": "Lietuva"
}

Reikėtu aiškiai apibrėžti, kas yra resursas, kas yra objektas ir kuo jie skiriasi.

Vienas objektas gali turėti nuorodas į kitus objektus, kaip pavyzdžiui City turi country atributą, kuris yra Country objektas.

Resursas turi papildomą informaciją susijusią su duomenų saugojimu, tokią kaip revizijos numeris, kuris nurodo duomenų versiją, transakcijos numeris, kuris nurodo, kada duomenys buvo sugeneruoti ir pan.

Kreipiantis į resursą, galima gauti kelis objektus, vienos užklausos metu, pavyzdžiui:

http get /datasets/gov/example/City?_select=name,country.name

Čia prašome duomenų, apie du skirtingus objektus, apie City ir apie Country objektą.

Analogiškai, galime atskirai paprašyti, tik Country objekto:

http get /datasets/gov/example/Country?_select=name

Duomenų tipas ref leidžia susieti vieną objektą su kitu:

classDiagram
  direction LR
  class City {
    name: text
  }

  class Country {
    name: text
  }

  City --> Country : country
riteris13 commented 1 month ago

Atnaujinta 'ref' schema, kad nurodytų teisingai objektą. 'object' ir 'resource' schemos atnaujinimai palikti kitai iteracijai

sirex commented 1 month ago

Kol kas negaliu šito patikrinti, nes neveikia https://github.com/ivpk/uapi/issues/16