Skip to content

RESTful API (PL)

madryk edited this page Jan 29, 2015 · 3 revisions

API umożliwia przeglądanie zasobów przechowywanych w systemie saos. Poniżej znajduje się lista dostępnych operacji.


Punkt wejścia API

HTTP request Opis
GET api/ Wypisuje linki do serwisu wyszukiwań oraz serwisu pobierania danych

Parametry

brak

Przykład

Zapytanie

GET http://localhost/api

Odpowiedź

{
    "links": [
        {
            "rel": "dump",
            "href": "http://localhost/api/dump",
            "description": "Dump entry point"
        },
        {
            "rel": "search",
            "href": "http://localhost/api/search",
            "description": "Search entry point"
        }
    ]
}

Punkt wejścia serwisu wyszukiwań

HTTP request Opis
GET api/search Wypisuje linki do serwisu wyszukiwań orzeczeń

Parametry

brak

Przykład

Zapytanie

GET http://localhost/api/search

Odpowiedź

{
    "links": [
        {
            "rel": "judgments",
            "href": "http://localhost/api/search/judgments",
            "description": "Allows search judgments"
        }
    ]
}

Punkt wejścia serwisu pobierania danych

HTTP request Opis
GET api/dump Wypisuje linki do serwisu pobierania danych o sądach powszechnych, izbach sądu najwyższego, orzeczeniach

Parametry

brak

Przykład

Zapytanie

GET http://localhost/api/dump

Odpowiedź

{
    "links": [
        {
            "rel": "courts",
            "href": "http://localhost/api/dump/courts",
            "description": "Allows dump courts"
        },
        {
            "rel": "judgments",
            "href": "http://localhost/api/dump/judgments",
            "description": "Allows dump judgments"
        },
        {
            "rel": "scChambers",
            "href": "http://localhost/api/dump/scChambers",
            "description": "Allows dump supreme court chambers"
        }
    ]
}

Serwis wyszukiwań orzeczeń

HTTP request Opis
GET api/search/judgments Umożliwia wyszukiwanie orzeczeń zgodnie z zadanymi kryteriami

Parametry

Nazwa parametru Typ wartości Opis
pageNumber Nieujemna liczba całkowita Określa numer strony
pageSize Dodatnia liczba całkowita Określa ilość elementów na stronie
sortingField String Nazwa pola względem którego należy posortować wyniki; dozwolone wartości: "DATABASE_ID", "JUDGMENT_DATE", "CASE_NUMBER", "CC_COURT_TYPE", "CC_COURT_ID", "CC_COURT_CODE", "CC_COURT_NAME", "CC_COURT_DIVISION_ID", "CC_COURT_DIVISION_CODE", "CC_COURT_DIVISION_NAME", "SC_JUDGMENT_FORM", "SC_PERSONNEL_TYPE", "SC_COURT_DIVISION_ID", "SC_COURT_DIVISION_NAME", "SC_COURT_DIVISIONS_CHAMBER_ID", "SC_COURT_DIVISIONS_CHAMBER_NAME"
sortingDirection String Określa kierunek sortowania; dozwolone wartości: "ASC", "DESC"
all String Umożliwia wyszukiwania orzeczeń zawierających zadaną frazę; parametr wspiera wartości zapisane w języku zapytań
legalBase String Parametr wspiera wartości zapisane w języku zapytań
referencedRegulation String Parametr wspiera wartości zapisane w języku zapytań
judgeName String
caseNumber String
courtType String Określa typ orzeczenia; dozwolone wartości: "COMMON", "SUPREME", "ADMINISTRATIVE"
ccCourtType String Określa typ sądu powszechnego; dozwolone wartości: "APPEAL", "REGIONAL","DISTRICT"
ccCourtId Integer
ccCourtCode String
ccCourtName String
ccDivisionId Integer
ccDivisionCode String
ccDivisionName String
scPersonnelType String Dozwolone wartości: "ONE_PERSON", "THREE_PERSON", "FIVE_PERSON", "SEVEN_PERSON", "ALL_COURT", "ALL_CHAMBER", "JOINED_CHAMBERS"
scChamberId Integer
scChamberName String
scDivisionId Integer
scDivisionName String
judgmentTypes String Dozwolone wartości: "DECISION", "RESOLUTION", "SENTENCE", "REGULATION","REASONS"
keywords Array[String] Lista słów kluczowych
judgmentDateFrom Data postaci 'yyyy-MM-dd' Określa datę orzeczenia od której wyświetlać dane
judgmentDateTo Data postaci 'yyyy-MM-dd' Określa datę orzeczenia do której wyświetlać dane

Język zapytań

Wyszukiwanie po wybranych polach odbywa się za pomocą języka zapytań, który umożliwia stosowanie następujących operatorów:

  • cudzysłów ("bardzo długie wyrażenie")

    Szukaj orzeczeń zawierających wyrażenie podane w cudzysłowach (z zachowaniem kolejności słów)

  • minus (-słowo)

    Szukaj orzeczeń, które nie zawierają słowa podanego za znakiem minusa.

  • OR (pierwszy OR drugi)

    Szukaj orzeczeń, które zawierają słowo przed operatorem lub słowo za operatorem

Powyższe operatory można dowolnie łączyć ze sobą

Przykład

Zapytanie

GET http://localhost/api/search/judgments?pageSize=2&pageNumber=1&sortingField=DATABASE_ID&sortingDirection=ASC

Odpowiedź

{
    "links": [
        {
            "rel": "self",
            "href": "http://localhost/api/search/judgments?pageSize=2&pageNumber=1&sortingField=DATABASE_ID&sortingDirection=ASC"
        },
        {
            "rel": "prev",
            "href": "http://localhost/api/search/judgments?pageSize=2&pageNumber=0&sortingField=DATABASE_ID&sortingDirection=ASC"
        },
        {
            "rel": "next",
            "href": "http://localhost/api/search/judgments?pageSize=2&pageNumber=2&sortingField=DATABASE_ID&sortingDirection=ASC"
        }
    ],
    "items": [
        {
            "href": "http://localhost/api/judgments/1",
            "courtCases": [
                {
                    "caseNumber": "00112233"
                }
            ],
            "judgmentType": "SENTENCE",
            "judges": [
                {
                    "name": "Ewa Sniegocka",
                    "function": null,
                    "specialRoles": [
                        "PRESIDING_JUDGE"
                    ]
                },
                {
                    "name": "Irena Piotrowska",
                    "function": null,
                    "specialRoles": []
                },
                {
                    "name": "Ewa Zalewska",
                    "function": null,
                    "specialRoles": []
                }
            ],
            "textContent": "CC some text content",
            "keywords": [
                "konsument",
                "klauzule niedozwolone"
            ],
            "division": {
                "href": "http://localhost/api/divisions/11",
                "id": 1,
                "name": "I Wydzial Cywilny",
                "code": "0000503",
                "court": {
                    "href": "http://localhost/api/courts/1",
                    "id": 1,
                    "code": "15500000",
                    "name": "Sad Rejonowy we Wroclawiu"
                }
            },
            "judgmentDate": "2011-12-14"
        },
        {
            "href": "http://localhost/api/judgments/21",
            "courtCases": [
                {
                    "caseNumber": "00223344"
                }
            ],
            "judgmentType": "REASONS",
            "judges": [
                {
                    "name": "Katarzyna Zima",
                    "function": null,
                    "specialRoles": [
                        "PRESIDING_JUDGE"
                    ]
                },
                {
                    "name": "Urszula Zawadzka",
                    "function": null,
                    "specialRoles": [
                        "REASONS_FOR_JUDGMENT_AUTHOR"
                    ]
                }
            ],
            "textContent": "SC some text content",
            "keywords": [],
            "personnelType": "FIVE_PERSON",
            "division": {
                "href": "http://localhost/api/scDivisions/1",
                "id": 1,
                "name": "Wydzial karny I",
                "chambers": [
                    {
                        "href": "http://localhost/api/scChambers/1",
                        "id": 1,
                        "name": "Izba Cywilna"
                    }
                ]
            },
            "judgmentDate": "2012-11-11"
        }
    ],
    "queryTemplate": {
        "pageNumber": {
            "value": 1,
            "description": "Represents current page number",
            "allowedValues": "Not negative integer"
        },
        "pageSize": {
            "value": 2,
            "description": "Represents maximum number of items on the page",
            "allowedValues": "Any positive integer"
        },
        "sortingField": {
            "value": "DATABASE_ID",
            "description": "Represents the field by which you want to sort a list of items",
            "allowedValues": [
                "DATABASE_ID",
                "JUDGMENT_DATE",
                "CASE_NUMBER",
                "CC_COURT_TYPE",
                "CC_COURT_ID",
                "CC_COURT_CODE",
                "CC_COURT_NAME",
                "CC_COURT_DIVISION_ID",
                "CC_COURT_DIVISION_CODE",
                "CC_COURT_DIVISION_NAME",
                "SC_JUDGMENT_FORM",
                "SC_PERSONNEL_TYPE",
                "SC_COURT_DIVISION_ID",
                "SC_COURT_DIVISION_NAME",
                "SC_COURT_DIVISIONS_CHAMBER_ID",
                "SC_COURT_DIVISIONS_CHAMBER_NAME"
            ]
        },
        "sortingDirection": {
            "value": "ASC",
            "description": "Represents the direction in which to sort a list of items",
            "allowedValues": [
                "ASC",
                "DESC"
            ]
        },
        "all": null,
        "legalBase": null,
        "referencedRegulation": null,
        "judgeName": null,
        "caseNumber": null,
        "courtType": {
            "value": null,
            "description": "Represents judgment's court type",
            "allowedValues": [
                "COMMON",
                "SUPREME",
                "ADMINISTRATIVE"
            ]
        },
        "ccCourtType": {
            "value": null,
            "description": "Represents common court type",
            "allowedValues": [
                "APPEAL",
                "REGIONAL",
                "DISTRICT"
            ]
        },
        "ccCourtId": null,
        "ccCourtCode": null,
        "ccCourtName": null,
        "ccDivisionId": null,
        "ccDivisionCode": null,
        "ccDivisionName": null,
        "scPersonnelType": {
            "value": null,
            "description": "Represents supreme court judgment's personnel type",
            "allowedValues": [
                "ONE_PERSON",
                "THREE_PERSON",
                "FIVE_PERSON",
                "SEVEN_PERSON",
                "ALL_COURT",
                "ALL_CHAMBER",
                "JOINED_CHAMBERS"
            ]
        },
        "scChamberId": null,
        "scChamberName": null,
        "scDivisionId": null,
        "scDivisionName": null,
        "judgmentTypes": {
            "value": [],
            "description": "Represents list of judgments types",
            "allowedValues": [
                "DECISION",
                "RESOLUTION",
                "SENTENCE",
                "REGULATION",
                "REASONS"
            ]
        },
        "keywords": [],
        "judgmentDateFrom": {
            "value": "",
            "description": "Represents the earliest allowed judgment's date on the list of items",
            "allowedValues": "Date in format : 'yyyy-MM-dd'"
        },
        "judgmentDateTo": {
            "value": "",
            "description": "Represents the latest of allowed judgment's date on the list of items",
            "allowedValues": "Date in format : 'yyyy-MM-dd'"
        }
    },
    "info": {
        "totalResults": 234
    }
}

Serwis pobierania danych o sądach powszechnych

HTTP request Opis
GET api/dump/courts Umożliwia pobieranie danych o sądach powszechnych

Parametry

Nazwa parametru Typ wartości Opis
pageNumber Nieujemna liczba całkowita Określa numer strony
pageSize Dodatnia liczba całkowita Określa ilość elementów na stronie

Przykład

Zapytanie

GET http://localhost/api/dump/courts

Odpowiedź

{
    "links": [
        {
            "rel": "self",
            "href": "http://localhost/api/dump/courts?pageSize=20&pageNumber=0"
        },
        {
            "rel": "next",
            "href": "http://localhost/api/dump/courts?pageSize=20&pageNumber=1"
        }
    ],
    "items": [
        {
            "id": 1,
            "name": "Sad Rejonowy we Wroclawiu",
            "type": "REGIONAL",
            "code": "15500000",
            "parentCourt": {
                "id": 2
            },
            "divisions": [
                {
                    "id": 1,
                    "name": "I Wydzial Cywilny",
                    "code": "0000503",
                    "type": "Cywilny"
                },
                {
                    "id": 2,
                    "name": "II Wydzial Karny",
                    "code": "0000604",
                    "type": "Karny"
                }
            ]
        },
        {
            "id": 2,
            "name": "Sad Apelacyjny we Wroclawiu",
            "type": "APPEAL",
            "code": "16660000",
            "parentCourt": null,
            "divisions": []
        },
     
         ...

    ],
    "queryTemplate": {
        "pageSize": {
            "value": 20,
            "description": "Represents maximum number of items on the page",
            "allowedValues": "Any positive integer"
        },
        "pageNumber": {
            "value": 0,
            "description": "Represents current page number",
            "allowedValues": "Not negative integer"
        }
    },
    "info": null
}

Serwis pobierania danych o izbach sądu najwyższego

HTTP request Opis
GET api/dump/scChambers Umożliwia pobieranie danych o izbach sądu najwyższego

Parametry

Nazwa parametru Typ wartości Opis
pageNumber Nieujemna liczba całkowita Określa numer strony
pageSize Dodatnia liczba całkowita Określa ilość elementów na stronie

Przykład

Zapytanie

GET http://localhost/api/dump/scChambers

Odpowiedź

{
    "links": [
        {
            "rel": "self",
            "href": "http://localhost/api/dump/scChambers?pageSize=20&pageNumber=0"
        },
        {
            "rel": "next",
            "href": "http://localhost/api/dump/scChambers?pageSize=20&pageNumber=1"
        }
    ],
    "items": [
        {
            "id": 1,
            "name": "Izba Cywilna",
            "divisions": [
                {
                    "id": 1,
                    "name": "Wydzial karny I",
                    "fullName": "Wydzial karny I pelna nazwa"
                }
            ]
        },

           ...

    ],
    "queryTemplate": {
        "pageSize": {
            "value": 20,
            "description": "Represents maximum number of items on the page",
            "allowedValues": "Any positive integer"
        },
        "pageNumber": {
            "value": 0,
            "description": "Represents current page number",
            "allowedValues": "Not negative integer"
        }
    },
    "info": null
}

Serwis pobierania danych o orzeczeniach

HTTP request Opis
GET api/dump/judgments Umożliwia pobieranie danych o orzeczeniach

Parametry

Nazwa parametru Typ wartości Opis
pageNumber Nieujemna liczba całkowita Określa numer strony
pageSize Dodatnia liczba całkowita Określa ilość elementów na stronie
judgmentDateFrom Data postaci 'yyyy-MM-dd' Określa datę orzeczenia od której wyświetlać dane
judgmentDateTo Data postaci 'yyyy-MM-dd' Określa datę orzeczenia do której wyświetlać dane
sinceModificationDate Data postaci 'yyyy-MM-dd'T'HH:mm:ss.SSS' Umożliwia pobieranie danych zmodyfikowanych po ustalonej dacie

Przykład

Zapytanie

GET http://localhost/api/dump/judgments?pageSize=11&pageNumber=5&judgmentStartDate=1999-11-10&judgmentEndDate=2020-10-25&sinceModificationDate=2000-11-25T13:55:18.769

Odpowiedź

{
    "links": [
        {
            "rel": "self",
            "href": "http://localhost/api/dump/judgments?pageSize=11&pageNumber=5&judgmentStartDate=1999-11-10&judgmentEndDate=2020-10-25&sinceModificationDate=2000-11-25T13:55:18.769"
        },
        {
            "rel": "prev",
            "href": "http://localhost/api/dump/judgments?pageSize=11&pageNumber=4&judgmentStartDate=1999-11-10&judgmentEndDate=2020-10-25&sinceModificationDate=2000-11-25T13:55:18.769"
        },
        {
            "rel": "next",
            "href": "http://localhost/api/dump/judgments?pageSize=11&pageNumber=6&judgmentStartDate=1999-11-10&judgmentEndDate=2020-10-25&sinceModificationDate=2000-11-25T13:55:18.769"
        }
    ],
    "items": [
        {
            "id": 1,
            "courtType": "COMMON",
            "courtCases": [
                {
                    "caseNumber": "00112233"
                }
            ],
            "judgmentType": "SENTENCE",
            "judges": [
                {
                    "name": "Ewa Sniegocka",
                    "function": "CC first function",
                    "specialRoles": [
                        "PRESIDING_JUDGE"
                    ]
                },
                {
                    "name": "Irena Piotrowska",
                    "function": null,
                    "specialRoles": []
                },
                {
                    "name": "Ewa Zalewska",
                    "function": null,
                    "specialRoles": []
                }
            ],
            "source": {
                "code": "COMMON_COURT",
                "judgmentUrl": "http://orzeczenia.ms.gov.pl/ncourt-api/judgement/details?id=155515000001003_II_Cz_000561_2014_Uz_2014-04-28_001",
                "judgmentId": "155515000001003_II_Cz_000561_2014_Uz_2014-04-28_001",
                "publisher": "Grazyna Magryta-Golaszewska",
                "reviser": "Mariola Baran",
                "publicationDate": "2377-03-07"
            },
            "courtReporters": [
                "Adam Nowak",
                "Jan Kowalski"
            ],
            "decision": "oddala apelacje",
            "summary": "CC Apelacja jest bezzasadna",
            "textContent": "CC some text content",
            "legalBases": [
                "art. 88 ust. 1 ustawy z dnia 26 stycznia 1982 r. Karta Nauczyciela",
                "art. 30 i art. 17 ustawy z dn. 16.07.2004r. Prawo telekomunikacyjne"
            ],
            "referencedRegulations": [
                {
                    "journalTitle": "Ustawa z dnia 14 czerwca 1960 r. - Kodeks postepowania administracyjnego (Dz. U. z 1960 r. Nr 30, poz. 168)",
                    "journalNo": 30,
                    "journalYear": 1960,
                    "journalEntry": 168,
                    "text": "some first referenced regulation text"
                },
                {
                    "journalTitle": "Ustawa z dnia 17 listopada 1964 r. - Kodeks postepowania cywilnego (Dz. U. z 1964 r. Nr 43, poz. 296)",
                    "journalNo": 43,
                    "journalYear": 1964,
                    "journalEntry": 296,
                    "text": "some second referenced regulation text"
                },
                {
                    "journalTitle": "Ustawa z dnia 30 sierpnia 2002 r. - Prawo o postepowaniu przed sadami administracyjnymi (Dz. U. z 2002 r. Nr 153, poz. 1270)",
                    "journalNo": 153,
                    "journalYear": 2002,
                    "journalEntry": 1270,
                    "text": "CC some third referenced regulation text"
                }
            ],
            "keywords": [
                "konsument",
                "klauzule niedozwolone"
            ],
            "division": {
                "id": 1
            },
            "judgmentDate": "2011-12-14"
        },
        {
            "id": 2,
            "courtType": "SUPREME",
            "courtCases": [
                {
                    "caseNumber": "00223344"
                }
            ],
            "judgmentType": "REASONS",
            "judges": [
                {
                    "name": "Katarzyna Zima",
                    "function": "SC first function",
                    "specialRoles": [
                        "PRESIDING_JUDGE"
                    ]
                },
                {
                    "name": "Urszula Zawadzka",
                    "function": null,
                    "specialRoles": [
                        "REASONS_FOR_JUDGMENT_AUTHOR"
                    ]
                }
            ],
            "source": {
                "code": "SUPREME_COURT",
                "judgmentUrl": "http://orzeczenia.ms.gov.pl/ncourt-api/judgement/details?id=155515000001003_II_Cz_000561_2014_Uz_2014-04-29_002",
                "judgmentId": "155515000001003_III_Cz_000561_2014_Uz_2014-04-29_002",
                "publisher": "Anna Wesolowska",
                "reviser": "Agnieszka Nowacka",
                "publicationDate": "2377-03-07"
            },
            "courtReporters": [
                "Ewa Wesolowska",
                "Dominik Wesolowski"
            ],
            "decision": "przyjeto apelacje",
            "summary": "SC Apelacja jest zasadna",
            "textContent": "SC some text content",
            "legalBases": [
                "art. 5 ust. 2 ustawy z dnia 22 listopada 2013 r. o zmianie ustawy o systemie informacji oswiatowej",
                "art. 3 i art. 12 ustawa z dnia 18 sierpnia 2011 r. o bezpieczenstwie morskim"
            ],
            "referencedRegulations": [
                {
                    "journalTitle": "first sc Ustawa z dnia 14 czerwca 1960 r. - Kodeks postepowania administracyjnego (Dz. U. z 1960 r. Nr 30, poz. 168)",
                    "journalNo": 21,
                    "journalYear": 1981,
                    "journalEntry": 111,
                    "text": "SC some first referenced regulation text"
                },
                {
                    "journalTitle": "second sc Ustawa z dnia 17 listopada 1964 r. - Kodeks postepowania cywilnego (Dz. U. z 1964 r. Nr 43, poz. 296)",
                    "journalNo": 45,
                    "journalYear": 1975,
                    "journalEntry": 355,
                    "text": "SC some second referenced regulation text"
                },
                {
                    "journalTitle": "third sc Ustawa z dnia 30 sierpnia 2002 r. - Prawo o postepowaniu przed sadami administracyjnymi (Dz. U. z 2002 r. Nr 153, poz. 1270)",
                    "journalNo": 133,
                    "journalYear": 2033,
                    "journalEntry": 1233,
                    "text": "SS some third referenced regulation text"
                }
            ],
            "keywords": [],
            "personnelType": "FIVE_PERSON",
            "form": {
                "name": "postanowienie SC SN"
            },
            "division": {
                "id": 1
            },
            "chambers": [
                {
                    "id": 1
                }
            ],
            "judgmentDate": "2012-11-11"
        }

             ...

    ],
    "queryTemplate": {
        "pageNumber": {
            "value": 5,
            "description": "Represents current page number",
            "allowedValues": "Not negative integer"
        },
        "pageSize": {
            "value": 11,
            "description": "Represents maximum number of items on the page",
            "allowedValues": "Any positive integer"
        },
        "judgmentStartDate": {
            "value": "1999-11-10",
            "description": "Represents the earliest allowed judgment's date on the list of items",
            "allowedValues": "Date in format : 'yyyy-MM-dd'"
        },
        "judgmentEndDate": {
            "value": "2020-10-25",
            "description": "Represents the latest of allowed judgment's date on the list of items",
            "allowedValues": "Date in format : 'yyyy-MM-dd'"
        },
        "sinceModificationDate": {
            "value": "2000-11-25T13:55:18.769",
            "description": "Allows you to select judgments which were modified later than the specified dateTime",
            "allowedValues": "DateTime in format : yyyy-MM-dd'T'HH:mm:ss.SSS"
        }
    },
    "info": null
}

Opis błędów

Jeśli server nie będzie umiał obsłużyć naszego zapytania, dostaniemy informację zwrotną o błędzie

Zapytanie

GET http://localhost/api/dump/courts?some_incorrect_parameter_name=xyz

Odpowiedź

HTTP/1.1 400 Bad Request

{
    "error": {
        "httpStatus": "400",
        "name": "WRONG REQUEST PARAMETER",
        "propertyName": "some_incorrect_parameter_name",
        "message": "parameter 'some_incorrect_parameter_name' :  name is incorrect",
        "moreInfo": "http://localhost/docsApi/WRONG_REQUEST_PARAMETER_ERROR"
    }
}

Informacje o błędzie są zawarte w obiekcie "error"

  • httpStatus - jest to powtórzenie wartości kodu odpowiedzi błędu HTTP zapisanej jako string
  • name - nazwa błędu
  • propertyName - nazwa parametru, który spowodował błąd
  • message - informacja tekstowa o błędzie
  • moreInfo - zawiera informacje pomocne przy badaniu przyczyny błędu

Odpowiedzi od serwera mogą zawierać reprezentacje następujących błędów:

  • Zapytanie zawierało błąd : 400 Bad Request
  • Serwer nie może odnaleźć zasobu : 404 Not Found
  • Wewnętrzny błąd serwera : 500 Internal Server Error