Senaste nytt
finewines.se

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • Som flera kanske har märkt är sig finewines.se inte sig likt rent utseendemässigt! En uppgradering av forumets mjukvara har genomförts och temat kommer successivt att uppdateras för att bättre matcha vår tidigare färgprofil! Eventuella buggar eller feedback tas tacksamt emot i den här forumtråden!

Hämta/lagra data från systembolaget

Daniel B

IT- & dryckesnörd
Tekniskt ansvarig
Alright!

Dags för en ny statusuppdatering!

Jag har klurat fram och tillbaka och bestämde mig för att inte återuppfinna hjulet, så jag har hittat diverse schyssta backend-moduler som jag kunnat använda för att få till den enkla funktionalitet jag tror räcker ganska långt.

Som det ser ut just nu är API't i princip färdigställt. Jag måste se över lite olika datatyper, typ som årgång, pris etc. som Systembolaget tyvärr exponerar som vanliga textsträngar istället för siffror. Det blir lite konverteringar där men det gör inte så mycket.

Ett exempel på hur en fråga mot API't kan se ut är såhär

Hämta alla drycker från ursprung "Champagne" med årgång "2008", sorterat i namnordning.
Kod:
https://..../api/v1/Beverages?Ursprung=Champagne&Argang=2008&sort=Namn

som returernar en array av JSON-objekt:
Kod:
[
  {
    "_id": "558060041c75719d110d5229",
    "nr": "7798201",
    "Artikelid": "797901",
    "Varnummer": "77982",
    "Namn": "Alain Waris et Fils",
    "Namn2": "Millésime Brut",
    "Prisinklmoms": "635.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "846.67",
    "Saljstart": "2013-11-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": "Naturkork",
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Alain Waris et Fils",
    "Leverantor": "Sevengrapes",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d5283",
    "nr": "7173701",
    "Artikelid": "799668",
    "Varnummer": "71737",
    "Namn": "Beaumont des Crayères",
    "Namn2": "Fleur de Meunier Brut Nature",
    "Prisinklmoms": "399.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "532.00",
    "Saljstart": "2013-11-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Beaumont des Crayères",
    "Leverantor": "Hermansson & Co AB",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d66fa",
    "nr": "7734001",
    "Artikelid": "914077",
    "Varnummer": "77340",
    "Namn": "Blondel",
    "Namn2": "Vieux Millésime Brut",
    "Prisinklmoms": "373.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "497.33",
    "Saljstart": "2014-12-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Thierry Blondel",
    "Leverantor": "Mattias Bubbel HB",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },

Precis på samma sätt kan man välja att hämta ut kanske bara en enda producent (@Deppodi ;)). I det här fallet Pernod Ricard, men för att slippa få en lång lista plockar jag bara ut de tre första.

Kod:
https://..../api/v1/Beverages?Producent=Pernod Ricard&limit=3

som returnerar
Kod:
[
  {
    "_id": "558060041c75719d110d28bb",
    "nr": "101",
    "Artikelid": "1",
    "Varnummer": "1",
    "Namn": "Renat",
    "Namn2": null,
    "Prisinklmoms": "205.00",
    "Volymiml": "700.00",
    "PrisPerLiter": "292.86",
    "Saljstart": "1993-10-01",
    "Slutlev": null,
    "Varugrupp": "Okryddad sprit",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": null,
    "Ursprunglandnamn": "Internationellt märke",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "37.50%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0",
    "RavarorBeskrivning": "Förr potatis numera endast säd."
  },
  {
    "_id": "558060041c75719d110d290a",
    "nr": "79302",
    "Artikelid": "12544",
    "Varnummer": "793",
    "Namn": "Lapponia Hjortron",
    "Namn2": null,
    "Prisinklmoms": "163.00",
    "Volymiml": "500.00",
    "PrisPerLiter": "326.00",
    "Saljstart": "1996-12-16",
    "Slutlev": null,
    "Varugrupp": "Likör",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": null,
    "Ursprunglandnamn": "Finland",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "21.00%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d290e",
    "nr": "808901",
    "Artikelid": "11620",
    "Varnummer": "8089",
    "Namn": "Grådask",
    "Namn2": "Tawny",
    "Prisinklmoms": "169.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "225.33",
    "Saljstart": "1996-10-01",
    "Slutlev": null,
    "Varugrupp": "Portvin",
    "Forpackning": "Flaska",
    "Forslutning": "Naturkork",
    "Ursprung": "Porto",
    "Ursprunglandnamn": "Portugal",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "20.00%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0"
  }
]

Ni som tittar lite extra på URL'en på anropen förstår snart att det finns otroligt många kombinationer man kan skriva in för att få ett så filtrerat svar som möjligt.

Nästa steg blir att få upp det för folk att använda, och sen lägga på ett enkelt GUI!
 

Tomas Lindblom

fd Deppodi
Moderator
Alright!

Dags för en ny statusuppdatering!

Jag har klurat fram och tillbaka och bestämde mig för att inte återuppfinna hjulet, så jag har hittat diverse schyssta backend-moduler som jag kunnat använda för att få till den enkla funktionalitet jag tror räcker ganska långt.

Som det ser ut just nu är API't i princip färdigställt. Jag måste se över lite olika datatyper, typ som årgång, pris etc. som Systembolaget tyvärr exponerar som vanliga textsträngar istället för siffror. Det blir lite konverteringar där men det gör inte så mycket.

Ett exempel på hur en fråga mot API't kan se ut är såhär

Hämta alla drycker från ursprung "Champagne" med årgång "2008", sorterat i namnordning.
Kod:
https://..../api/v1/Beverages?Ursprung=Champagne&Argang=2008&sort=Namn

som returernar en array av JSON-objekt:
Kod:
[
  {
    "_id": "558060041c75719d110d5229",
    "nr": "7798201",
    "Artikelid": "797901",
    "Varnummer": "77982",
    "Namn": "Alain Waris et Fils",
    "Namn2": "Millésime Brut",
    "Prisinklmoms": "635.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "846.67",
    "Saljstart": "2013-11-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": "Naturkork",
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Alain Waris et Fils",
    "Leverantor": "Sevengrapes",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d5283",
    "nr": "7173701",
    "Artikelid": "799668",
    "Varnummer": "71737",
    "Namn": "Beaumont des Crayères",
    "Namn2": "Fleur de Meunier Brut Nature",
    "Prisinklmoms": "399.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "532.00",
    "Saljstart": "2013-11-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Beaumont des Crayères",
    "Leverantor": "Hermansson & Co AB",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d66fa",
    "nr": "7734001",
    "Artikelid": "914077",
    "Varnummer": "77340",
    "Namn": "Blondel",
    "Namn2": "Vieux Millésime Brut",
    "Prisinklmoms": "373.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "497.33",
    "Saljstart": "2014-12-01",
    "Slutlev": null,
    "Varugrupp": "Mousserande vin",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": "Champagne",
    "Ursprunglandnamn": "Frankrike",
    "Producent": "Thierry Blondel",
    "Leverantor": "Mattias Bubbel HB",
    "Argang": "2008",
    "Provadargang": null,
    "Alkoholhalt": "12.00%",
    "Sortiment": "BS",
    "Ekologisk": "0",
    "Koscher": "0"
  },

Precis på samma sätt kan man välja att hämta ut kanske bara en enda producent (@Deppodi ;)). I det här fallet Pernod Ricard, men för att slippa få en lång lista plockar jag bara ut de tre första.

Kod:
https://..../api/v1/Beverages?Producent=Pernod Ricard&limit=3

som returnerar
Kod:
[
  {
    "_id": "558060041c75719d110d28bb",
    "nr": "101",
    "Artikelid": "1",
    "Varnummer": "1",
    "Namn": "Renat",
    "Namn2": null,
    "Prisinklmoms": "205.00",
    "Volymiml": "700.00",
    "PrisPerLiter": "292.86",
    "Saljstart": "1993-10-01",
    "Slutlev": null,
    "Varugrupp": "Okryddad sprit",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": null,
    "Ursprunglandnamn": "Internationellt märke",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "37.50%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0",
    "RavarorBeskrivning": "Förr potatis numera endast säd."
  },
  {
    "_id": "558060041c75719d110d290a",
    "nr": "79302",
    "Artikelid": "12544",
    "Varnummer": "793",
    "Namn": "Lapponia Hjortron",
    "Namn2": null,
    "Prisinklmoms": "163.00",
    "Volymiml": "500.00",
    "PrisPerLiter": "326.00",
    "Saljstart": "1996-12-16",
    "Slutlev": null,
    "Varugrupp": "Likör",
    "Forpackning": "Flaska",
    "Forslutning": null,
    "Ursprung": null,
    "Ursprunglandnamn": "Finland",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "21.00%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0"
  },
  {
    "_id": "558060041c75719d110d290e",
    "nr": "808901",
    "Artikelid": "11620",
    "Varnummer": "8089",
    "Namn": "Grådask",
    "Namn2": "Tawny",
    "Prisinklmoms": "169.00",
    "Volymiml": "750.00",
    "PrisPerLiter": "225.33",
    "Saljstart": "1996-10-01",
    "Slutlev": null,
    "Varugrupp": "Portvin",
    "Forpackning": "Flaska",
    "Forslutning": "Naturkork",
    "Ursprung": "Porto",
    "Ursprunglandnamn": "Portugal",
    "Producent": "Pernod Ricard",
    "Leverantor": "Pernod Ricard Sweden AB",
    "Argang": null,
    "Provadargang": null,
    "Alkoholhalt": "20.00%",
    "Sortiment": "FS",
    "Ekologisk": "0",
    "Koscher": "0"
  }
]

Ni som tittar lite extra på URL'en på anropen förstår snart att det finns otroligt många kombinationer man kan skriva in för att få ett så filtrerat svar som möjligt.

Nästa steg blir att få upp det för folk att använda, och sen lägga på ett enkelt GUI!

Låter toppen! Jag är imponerad över att du lägger ner så mycket tid på detta! Trodde inte att det skulle bli något när vi började prata för några månader sedan.

Jag ska kolla mer när jag kommer hem :)
 
Toppen