You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Her har vi har samlet noen spørsmål som ofte blir stilt  Dokumentasjonen til API’ene finnes på de respektive swagger sidene. Der kan en finne informasjon om hva de forskjellige endepunktene gjør, og hvilke parametre en kan sende med. Det anbefales å sjekke dokumentasjonen først.

Generelt

  • Hvilken versjon av feed® har vi?
    • Ved å klikke på initialene dine oppe i høyre hjørne for å se meny med tilgang til bl.a "Min side" så kan du se gjeldende versjonsnummer av feed® som vist her:
  • Jeg finner ikke det jeg leter etter i nedtrekkslisten ?!?
    • Nedtrekkslister i feed® kan potensielt inneholde veldig mange mulige verdier. Hvis det er tilfellet så vil ikke alle være synlige hvis du åpner og scroller i listen uten å først begynne å skrive inn hva du ønsker. Så hvis du ikke ser det du vil ha, prøv å skrive de første bokstavene i hva du leter etter og så bør det raskt dukke opp.
  • Jeg har lagt til kolonne med attributt/tekst "X" i produktoversikten, det er mange produkter uten noe verdi her som jeg ikke får redigere og når jeg søker etter produkter som mangler verdi for "X" så får jeg ingen treff ?!?
    • En kan kun redigere attributt/tekst "X" hvis dette er tilgjengelig i produktmal som er satt på produktet. For produkter i produktoversikten som ikke har "X" tilgjengelig i sin mal, vises dette feltet tomt uten noe verdi og det vil heller ikke være mulig å redigere dette feltet. Ettersom søk på attributter som mangler verdi kun søker blant produkter hvor aktuell tekst/attributt er tilgjengelig i produktmalen, så vil disse heller ikke blir returnert ved slike søk.
  • Jeg har opprettet en ny attributt / tekstfelt, men jeg ser det ikke på produktet mitt?
    • For at egendefinerte attributter/tekster skal vises på et produkt så må det legges inn i tilhørende produktmal, dette gjøres via stamdata. Hvis du ikke ser attributt eller tekstfelt som forventet så sjekk om det finnes i produktmalen til produktet. Et produkt må ha en mal for å se egendefinerte attributter / tekster.
  • Jeg søker etter "XXX", men får ikke treff ¨på produkt "XXXmedmere"
    • Når du benytter fritekstsøk øverst i feed® så søker en på tvers av informasjon i produkthodet, egendefinerte attributter og tekster. Det er med andre ord sannsynlig at en kan treffe ganske bredt i søkeresultatet. Derfor, og med tanke på ytelse, så søker fritekstsøket etter treff på hele ord i søkestrengen. Med andre ord, hvis du søker etter "fot" så treffer du bare produkter som har ordet "fot" i seg ett eller annet sted, f.eks i en attributt, produktnavnet eller kanskje i en markedstekst. Du vil derimot ikke treffe et produkt som inneholder ordet "fotball" hvis du søker etter "fot".

Import API

Hva er teksten/koden som returneres fra “/import/import”?

Dette er en GUID som brukes til å identifisere den bestemte importen. Ved å sende koden til “/import/{guid}/status” vil en få nåværende status på importen.

Eksempel på GUID-struktur: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx.

Må det sendes med begge “identifiers”?

Nei, det er nok å sende en av dem for å identifisere hvilket produkt det gjelder. Gitt at produktet eksisterer fra før. Det er anbefalt å bruke “importCode” ettersom dette er en unik verdi. “productNo” er ikke en unik verdi og kan derfor ha flere produkter med samme verdi.
Vær oppmerksom hvis en utfører operasjoner som krever et unikt produkt, f.eks oppdatering, vil feile hvis en benytter "productNo" som identifier og angitt verdi ikke er unik. 

Hva er “importMode”?

“importMode” er et felt som gir feed® indikasjon om en spesifikk import skal kunne opprette, oppdatere eller slette produkter avhengig av om de eksisterer fra før. 

Disse verdiene kan “importMode” ha:

  • CREATE_OR_UPDATE
    • Her vil import forsøke å oppdatere et produkt forutsatt at en identifier er satt i input og unikt identifiserer et produkt i feed®. Hvis identifier treffer flere produkter vil oppdatering feile. Hvis identifier ikke får noen treff vil import opprette et nytt produkt.
  • CREATE
    • Her vil import alltid forsøke å opprette et nytt produkt. Hvis "allowDuplicate" er satt til "false" vil opprettelse feile hvis angitt "productNo" allerede finnes. hvis "allowDuplicate" er satt til true vil det opprettes et nytt (duplikat) produkt med samme "productNo".
      Det vil aldri utføres oppdatering av eksisterende produkter når denne modus angis.
  • UPDATE
    • Her vil import alltid forsøke å redigere et eksisterende produkt. Hvis identifier treffer flere produkter vil oppdatering feile. Hvis identifier ikke får noen treff vil det gis en advarsel om at produkt ikke er funnet. 
      Det vil aldri opprettes nye produkter når denne modus angis.

 Hva er “importCode” for et produkt?

“importCode” for et produkt er en unik intern ID’en for et produkt i feed® installasjonen. Dette kan en f.eks. få med i en export av produkter. En kan ikke bestemme eller endre “importCode” for et produkt i feed®.
Denne er med i API eksporter og en kan også se hvilken "importCode" et produkt har ved å se på siffer i siste del av URL når en er inne på et produkt i web-grensesnittet. 

I eksempel over er "importCode" for produktet en er inne på = 2.

Hvordan kan jeg vite hva som er gyldig input i en import?

Se dokumentasjon av input (og output) i swagger dokumentasjonen til det endpoint du benytter. Swagger dokumentasjon er tilgjengelig på https://<host URL>/import/swagger-ui/
<host URL> er adressen til din feed installasjon.

Må det sendes med alle felt for et produkt når kun et felt skal oppdateres?

Nei, det holder å sende kun de feltene en ønsker å oppdatere.

Hvor lang tid tar det å importere et produkt?

Det er ikke mulig å gi en konkret tid. Ettersom dette er avhengig av mange faktorer som f.eks. antall felt, spesifikt hvilke felt, jobbene som kjører på feed® serveren fra før av, mm.

Hvorfor vises ikke feilmeldinger i “/import/{guid}/status”?

For å få ut mer informasjon om advarsler eller feilmeldinger for importerte eller forsøkt importerte produkter kan en sende med parametret “incudeDeviationReport” lik "true".  Som standard returneres bare en oversikt over progresjon og antall advarsler og feil.

Kan man se innsendt JSON i “/import/{guid}/status”?

Ja, ved å sette "includeImportJSON" lik "true", kan man få ut JSON fra importen.

Hvorfor finnes det to forskjellige import og export endepunkter for media?

“/import/media” er faset ut og erstattet med “/media/import”. Hvis en benytter førstnevnte bør en oppdatere integrasjon til å benytte korrekt media API for dette. Utfasede endpoints ( [deprecated] ) vil kunne bli utilgjengelig på fremtidig tidspunkt, men det vil sendes ut varsel om dette.

Er det mulig å importere strukturer via API?

Ja, det er innført egne endpoints i import API for å opprette og vedlikeholde strukturer i feed®.  Se swagger dokumentasjon for ytterligere detaljer om hva som er mulig.

Eksport API

Må en hente ut alle produkter?

Nei, en må ikke hente alle produktene. Det er mange måter å filtrere en eksport av produkter slik at kun de ønskede produktene blir returnert. 

  • søkefiltre (eks. “freeText”, “showInactive”, “missingEtimForVersion”) er effektive å bruke for å utelukke irrelevante produkter.
  • Det er mulig å spesifisere i en liste med produkter en ønsker å eksportere. Dette kan en ved å enten angi en komma separeret liste med hvilke “importCode”, “productNo” eller "altProductNo" en ønsker.
  • En kan søke etter produkter som matcher angitt produktnavn eller beskrivelse ( name eller alternativeName)
  • En kan også filtrere resultatet til å kun matche produkter med angitt produkteier, status, produktmal, varegruppe eller leverandør ved å angi liste med tilhørende "importCodes" for disse
    • productOwnerImportCodes
    • productStatusImportCodes
    • productTypeImportCodes
    • productGroupImportCodes
    • supplierImportCodes

Se swagger dokumentasjonen for utfyllende informasjon om hvordan filtrere hvilke produkter en ønsker å eksportere.

Må en hente ut all informasjon på produkter?

Nei, en kan velge å ekskludere informasjon en ikke trenger fra respons.  Dette er anbefalt for å oppnå raskere respons, redusere belastning på feed® server og redusere datamengde som må transporteres.

  • query parameter “excludeData” benyttes for å filtrere bort informasjon en ikke trenger. Som standard så returneres komplett informasjon om produktet, men ved å legge inn hvilken informasjon man ikke trenger her kan en redusere datamengde og øke ytelse betraktelig.
    Følgende verdier kan ekskluderes: PRODUCT_HEAD, ATTRIBUTE, TEXT, MEDIA, RELATION, LINKED_TO, VARIANT, STRUCTURE, PACKAGING, ETIM.
    Hvis en legger inn alle de overnevnte som filter vil en få ut en respons som kun inneholder en liste med identifiers for de produkter en har eksportert. Dette er en rask måte å hente ut id for produkter hvis en kun skal gjøre et oppslag for å verifisere om et produkt finnes. 

I tillegg kan en redusere datamengde betydelig, spesielt hvis en har mange attributter av type "dataregister" eller eksporterer ETIM data ved å velge å ikke inkludere tilgjengelig/lovlige valg på disse utover hva som er faktisk angitt som verdi.

  • query parameter "includeOptions" lik "false" kan benyttes for å kun hente ut valgt verdi på en attributt med tilhørende liste av lovlige verdier. 
    Denne bør benyttes hvis en ikke trenger å hente ut informasjon om hvilke øvrige verdier (options) en attributt kan ha.

Kan en hente ut informasjon om et slettet produkt?

  • Man kan få med slettede produkter ved å sette “includeDeleted” til true.

Hvordan kan en kun hente det som er endret siden sist (delta export)?

For å kun hente det som er endret må en sette et gitt tidsintervall og sette flagget “changesOnly”. Om det ikke blir satt en “exportTo” dato vil det bli tatt utgangspunkt i at det skal gjelde frem til og med i dag. Det anbefales å primært hente data med “changesOnly” for å forhindre uthenting av produkter gjentatte ganger helt unødvendig.

Ref params: “changesOnly”, “exportFrom”, “exportTo”.

Er “basedata” det samme som produkt?

Basedata er ikke det samme som et produkt, men er det som definerer hva et produkt inneholder. Basedata er de stamdata som kunde har opprettet for egendefinerte felter i feed®, det er dette som definerer hvilken informasjon, relasjoner, roller, produktmaler og statuser som er tilgjengelig på et produkt i feed®. Via basedata eksport kan en hente ut attributter, tekster, statuser, relasjoner og mye mer. Se swagger dokumentasjon for ytterligere informasjon.

Jeg får feilmelding 401: Unauthorized. Hva gjør jeg?

Feilmeldingen er vanlig ved feil eller mangel på autentisering. Eks. en bearer token er utgått. Du kan sjekke denne siden: https://confluence.isys.no/display/FB/Autentisering.

Kan man hente ut produkter fra en spesifikk mappe i en struktur?

Ja, det er mulig å hente ut en bestemt mappe med “importCode”, men en får ikke en liste med alle produktene i undermappene. En må derfor traversere nedover i alle undermapper for å få tak i produktene til de tilhørende mappene. 

Ref api: “/export/structure/structures/{importCode}”.

Hva kommer ut i en struktur eksport?

Når du gjør en struktur eksport, vil du få ut informasjon om hvilke produkter, media og attributter som er der, men ikke all informasjon om de. For å få ut denne informasjonen må du gjøre produkt/media eksport. 

Hvordan kan jeg vite hva som kommer ut i en eksport?

I swagger dokumentasjon vil du se et eksempel på hvordan en vellykket eksport vil se ut. Swagger dokumentasjon er tilgjengelig på https://<host URL>/export/swagger-ui/
<host URL> er adressen til din feed installasjon.

Media API 

Hva er forskjell på base64/ inputstream/ url ?

Base64 returnerer en base64 encoded tekst blob i JSON responsen som kan dekodes til et bilde/dokument. Dette kan være maks 5 MB stort. Hvis en har store media så må en istedenfor bruke stream som returnere en filestream som kan lagres direkte. Om man har en url til et media, kan man bruke den til å lagre media.

Hva er forskjell på sourceID og import kode?

Hvis en importerer et media via media import API så kan en angi en sourceID på media ved import. Da kan denne også benyttes senere ved redigering / eksport. Denne finnes kun hvis den blir satt ved import og kan derfor ikke alltid brukes. ImportCode er feed® sitt eget interne og unike ID løpenummer for media og er alltid tilgjengelig og unik.

  • No labels