# Övningsprov: Express-API ### Förutsättningar Du ska skapa ett API med Node JS, Express och SQLite. APIt ska hantera inlägg (posts) för en enkel blogg. Du har en given databas i filen `database.db` med en tabell *posts* som har följande kolumner: | Kolumn | Typ | Beskrivning | | --------- | ------- | --------------------------- | | id | INTEGER | Primärnyckel, autoincrement | | title | TEXT | Titel på inlägget | | content | TEXT | Inläggets innehåll | | published | INTEGER | 0 = utkast, 1 = publicerat | För referens har tabellen skapats med följande SQL-kod: ```sql CREATE TABLE posts ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT NOT NULL, published INTEGER NOT NULL DEFAULT 0 ); ``` ### Uppgift Skapa ett api skrivit i Node JS med hjälp av express som har följande *endpoints*. Alla endpoints ska skicka tillbaka ett svar i json-format. Skriv också kommentarer till din kod. #### 1. Hämta inlägg `GET /posts` - skickar tillbaka alla inlägg som en lista i json-format. Exempel på svar: ```json [ { "id": 1, "title": "Första inlägget", "content": "Hej bloggen", "published": 1 } ] ``` #### 2. Skapa nytt inlägg `POST /posts` - skapar ett nytt inlägg utifrån bodyn av requesten. Exempel på request body: ```json { "title": "Nytt inlägg", "content": "Detta är innehållet" } ``` #### 3. Publicera/avpublicera befintligt inlägg `PUT /posts/:id` - ändrar publiceringsstatus på det inlägg med motsvarande id som i parametern. Nya statusen anges i querysträngen under variabeln *published*. Exempel på URL `/posts/3?published=1` ### Extra krav * lägg till att varje svar innehåller en relevant statuskod * lägg till en endpoint för att ta bort inlägg * lägg till en endpoint som skickar tillbaka endast ett inlägg