Skip to content

Rest api

mactoob edited this page Nov 26, 2011 · 30 revisions

REST API

Ścieżki podane poniżej są bez prefiksu - np. /backend.

TIP (wysyłanie żądania pod podany adres z daną metodą): curl -X POST http://asvis.local.pl/backend -b numbers=[1,3,5]

Do przemyślenia - synchronizacja baz.

Node'y

GET /nodes/find/[number]

Wyszukuje node'y po numerze, zwraca w kolejności alfabetycznej.

  • params:

    • number [int] - wyszukuje na zasadzie ilike value%
  • example: GET /node/find/345 - wyszukuje wszystkie numery wierzchołków rozpoczynające się od "345"

    • response:
{
    "34567": {"name":"AS34567"}
    "34579": {"name":"AS34579"}
    "345": {"name":"AS345"}
}

POST /nodes/meta

  • params:

    • numbers [str] - przykład: "[1234,2345,52345,234523]"
  • example: POST /nodes/meta

    • response:
{
    "1234": {"name":"AS1234", "pools":[{"ip":"193.110.32.0","netmask":21}, ...]},
    "4234": {"name":"AS4234", "pools":[{"ip":"198.136.146.0","netmask":12, ...}, ...]},
}

Struktury

GET /structure/graph/[node_number]/[depth]

Kolejność od node'ów o większej ilości (całkowitej) połączeń, do tych z mniejszą.

  • params:

    • node_number [int]
    • depth [int]
  • example: POST /structure/graph/345/10 - pobierz strukturę grafu od wierzchołka 345 do 10 połączeń wgłąb

    • response:
{
    "structure":{
        "306":{
            "out":[316,317,...,575],
            "in":[316,317,...,575],
            "distance":0,
            "weight":68
        },
        "306":{
            ...
        },
        ...
    },
    "weight_order":[306,575,...,343],
    "distance_order":[306,352,...,1733]
}

GET /structure/tree/[node_number]/[height]/[dir]

  • params:

    • node_number [int]
    • height [int]
    • dir [string] - przyjmowane wartości: "in", "out", "both"
  • example: GET /structure/tree/306/2/out - zwraca strukturę nodów, do których download danych spoza struktury odbywa się jedynie poprzez główny wierzchołek

    • response:
{
    "structure":{
        "306":{
            "out":[316,317,...,575],
            "in":[316,317,...,575],
            "distance":0,
            "weight":68
        },
        "306":{
            ...
        },
        ...
    },
    "weight_order":[306,575,...,343],
    "distance_order":[306,352,...,1733]
}

GET /structure/path/[num_start]/[num_end]/[dir]

  • params:
    • node_start [int]
    • num_stop [int]
    • dir [string] - przyjmowane wartości: "in", "out", "both"
  • example: GET /structure/path/306/27066/out - zwraca tablicę zawierającą struktury nodów, które reprezentują najkrótsze znalezione ścieżki połączeń "up" od noda końcowego do początkowego.
    • response:
[
    {
        "structure":{
             "306":{"out":[575],"in":[575],"distance":0,"weight":68},
             "575":{...},
            ...
        },
        "weight_order":[306,...,575],
        "distance_order":[306,...,27066]
    },
    {
        "structure":{
             "306":{"out":[270],"in":[270],"distance":0,"weight":68},
             "270":{...},
            ...
        },
        "weight_order":[306,...,270],
        "distance_order":[306,...,27066]
    },
    ...
]

Połączenia

GET /connections/meta/[num_for]

Wyszukuje informacje na temat połączeń podanego wierzchołka.

  • params:

    • num_for [int]
  • example: GET /connections/meta/345 - wyszukuje informacje na temat połączeń wierzchołka "345"

    • response:
[
    {"with":306,"status":0,"dir":"up"},
    ....
]
Clone this wiki locally