Buffl

Quizfragen

AA
von Anna A.

Which of the following would update the customer number without any error?

a.


apiRoot .withProjectKey({projectKey})

.customers()

.withKey({key: customer.body.key})

.post({

body: {

actions: [{

action: "setCustomerNumber",

customerNumber: "1" }] } })

.execute()


b.


apiRoot .withProjectKey({projectKey})

.customers()

.withKey({key: customer.body.key})

.post({

body:

{ version: customer.body.version,

actions: [{

action: "setCustomerNumber",

customerNumber: "1" }] } })

.execute()


c.


apiRoot .withProjectKey({projectKey})

.customers()

.withKey({key: customer.body.key})

.post({ body: {

version: customer.body.version,

actions:

{action:

"setCustomerNumber", customerNumber: "1" } } })

.execute()


d.


apiRoot .withProjectKey({projectKey})

.customers()

.post({

body: {

version: customer.body.version,

actions: [{

action: "setCustomerNumber",

customerNumber: "1" }] } })

.execute()

b.


apiRoot .withProjectKey({projectKey})

.customers()

.withKey({key: customer.body.key})

.post({

body: {

version: customer.body.version,

actions: [{

action: "setCustomerNumber"

, customerNumber: "1" }] } })

.execute()



Warum Antwort b korrekt ist:

Die API-Dokumentation für das Kunden-Update (mit der POST-Methode) zeigt, dass eine version der Ressource erforderlich ist, wenn du ein Update für einen bestehenden Kunden durchführen möchtest. Die version stellt sicher, dass du die richtige Version des Kunden aktualisierst und schützt vor Konkurrenzmodifikationen (z. B. wenn gleichzeitig ein anderer Benutzer dieselbe Ressource aktualisieren möchte).

Die richtige Struktur für das Update-Objekt sieht folgendermaßen aus:

  • Die version ist erforderlich, um sicherzustellen, dass du die aktuellste Version des Kunden aktualisierst und keine Konkurrenzmodifikation auftritt.

  • Du führst eine setCustomerNumber-Aktion aus, um die customerNumber auf "1" zu setzen.

Warum die anderen Optionen nicht korrekt sind:

  • Option a: Diese Option hat keine version im Body. Die version ist jedoch erforderlich, um das Update korrekt auszuführen. Ohne die version-Angabe könnte ein Fehler auftreten, insbesondere wenn die Ressource bereits geändert wurde.

  • Option c: Diese Option ist ähnlich wie a, aber der Fehler hier ist, dass die actions nicht als Array übergeben wird. actions müssen ein Array sein, auch wenn nur eine einzige Aktion durchgeführt wird. In der Dokumentation wird das als Array beschrieben.

  • Option d: Diese Option ist ebenfalls falsch, weil die version fehlt und die withKey-Methode im Pfad nicht verwendet wird. Das bedeutet, dass die ID des Kunden im Pfad fehlt, was nicht den API-Anforderungen entspricht. Die withKey-Methode wäre nur erforderlich, wenn du den Schlüssel (key) des Kunden als Identifikator verwenden würdest, aber in diesem Fall ist die Kunden-ID erforderlich.

Zusammengefasst:

Antwort b ist korrekt, weil sie die version-Angabe enthält und die actions im richtigen Format als Array übergibt, um die customerNumber des Kunden zu aktualisieren.

Which of the following would work without any error?

Assume that setCustomerNumber(customer, customerNumber) function creates the update request without any error.


Question 6Answer

a.


getCustomerByKey(customerKey) .then(customer => setCustomerNumber(customer,"")) .catch(console.log)


b.


getCustomerByKey(customerKey) .then(customer => setCustomerNumber(customer,"1")) .catch(console.log)


c.


getCustomerByKey(customerKey) .then(customer => setCustomerNumber(customer,"1")) .then(customer => setCustomerNumber(customer,"2")) .catch(console.log)

b.


getCustomerByKey(customerKey) .then(customer => setCustomerNumber(customer,"1")) .catch(console.log)


Erklärung:

Um das zu verstehen, müssen wir uns die Anforderungen und das Verhalten der Funktion setCustomerNumber anschauen.

  • setCustomerNumber(customer, customerNumber) nimmt zwei Parameter:

    1. customer: Das Kundenobjekt, das du aktualisieren möchtest.

    2. customerNumber: Die Kundennummer, die du setzen möchtest.

setCustomerNumber(customer, "") (Option a) und setCustomerNumber(customer, "1") (Option c) führen zu Problemen:

  • Eine leere customerNumber (wie in Option a) könnte ungültig sein, weil die customerNumber eine gültige Zahl oder ID sein muss, die zugewiesen werden kann. Eine leere Zeichenkette "" könnte eine ungültige Eingabe darstellen, die zu einem Fehler führt.

  • Option b ist korrekt, weil die Kundennummer "1" eine gültige Eingabe ist, die das setCustomerNumber-Verfahren nicht blockieren sollte. In dieser Option wird die customerNumber erfolgreich gesetzt.

Warum Option c nicht funktioniert:

  • Option c führt zwei setCustomerNumber-Aufrufe hintereinander aus, was in diesem Fall keine Fehler verursacht, aber in realen Szenarien zu Problemen führen kann:

    • setCustomerNumber kann nur eine einzelne gültige Kundennummer setzen, und sobald der Kunde eine Kundennummer hat, kann sie nicht mehr geändert werden (nach API-Dokumentation).

    • Diese Option könnte einen Fehler werfen, wenn der Kunde bereits eine Kundennummer hat, und du versuchst, sie mit "2" zu ändern, was nicht möglich ist.

Zusammengefasst:

  • Option b funktioniert ohne Fehler, weil "1" eine gültige customerNumber ist und keine weiteren Probleme auftreten.

  • Option a und Option c könnten Fehler verursachen, entweder durch ungültige Eingaben oder durch den Versuch, die customerNumber nach der ersten Änderung erneut zu ändern.



Author

Anna A.

Informationen

Zuletzt geändert