Jak uruchomić?

Aby uruchomić aplikacje należy folderze zawierającym pom.xml użyć polecenia

mvn spring-boot:run

Aby uruchomić testy to w tym samym folderze należy użyć polecenia

mvn test

Endpointy

  • POST /article

    Endpoint przyjmuje Article ( dokładny opis niżej )

  • PUT /article

    Endpoint przyjmuje Article ( dokładny opis niżej )

    Przesyłając model to tego enpointu należy podać id. Jeżeli artykuł z takim id nie istnieje zostanie zwrócony wyjątek.

  • GET /article/all

    Endpoint zwracający wszystkie artykuły posortowane pod dacie wydania malejąco

  • GET /article/{id}

    Endpoint zwracający artykuł o podanym id. Jeżeli artykuł z danym id nie istnieje to zostanie zwrócony wyjątek.

    Przykład: /article/1

  • GET /article/keyword/{keyword}

    Endpoint który zwraca wszystkie artykuły, które zawierają podany keyword w tytule lub treści.

    Przykład: /article/keyword/przyklad

    Zwróci wszystkie artykuły, które zawierają przykład w tytule lub treści.

  • DELETE /article/{id}

    Endpoint który usuwa artykuł o podanym id. Jeżeli id jest niepoprawne lub taki artykuł nie istnieje to zostanie zwrócony wyjątek.

    Przykład: article/1

Model oraz walidacja

Article

poletyp danychwalidacja
idlongWymagane tylko podczas aktualizacji
magazineNamestringMaksymalnie 500 znaków, nie może być puste lub być NULL
publicationDatelocalDateNie może być NULL
articleContentobiektNie może być NULL
authorobiektNie może być NULL

ArticleContent

poletyp danychwalidacja
titlestringMaksymalnie 500 znaków, nie może być puste lub być NULL
bodystringMaksymalnie 10000 znaków, nie może być puste lub być NULL

Author

poletyp danychwalidacja
namestringMaksymalnie 200 znaków, nie może być puste lub być NULL
lastNamestringMaksymalnie 200 znaków, nie może być puste lub być NULL

Przykładowy JSON

  • Przykładowy JSON do stworzenia artykułu
    {
        "author":{
            "name": "Jane",
            "lastName": "Doe"
        },
        "articleContent":{
            "title": "Some nice article title",
            "body": "Very interesting article body"
        },
        "publicationDate": "2021-01-01",
        "magazineName": "Popular magazine name"
    }
        
  • Przykładowy JSON do aktualizacji artykułu
    {
        "id": 1,
        "author":{
            "name": "Jane",
            "lastName": "Doe"
        },
        "articleContent":{
            "title": "Updated title!",
            "body": "And changed body"
        },
        "publicationDate": "2021-01-01",
        "magazineName": "Popular magazine name"
    }