Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP/API] Best Practise vraag

Pagina: 1
Acties:

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
Ik ben voor een hobby project bezig met een API van een externe website. Er is een class voor deze API waarmee ik calls kan doen die het rersultaat in XML omzet naar PHP SimpleXML die ik vervolgens weer uitlees op mijn website. Daarbij loop ik tegen een vraagstuk aan:

- De API werkt goed en doet veel dingen al voor mij maar mist informatie die ik graag zou willen toevoegen. Is het gebruikelijk dat er naast een API ook bijvoorbeeld een lokale database wordt bijgehouden waarin extra informatie staat? Als voorbeeld; met de api is het mogelijk evenementen te organiseren. Daarvoor kunnen leden zich registreren, de max is standaard 256 leden en kan niet aangepast worden. Nu wil ik zelf een max instellen van bijvoorbeeld 32 en wil dit dan opvangen in een database ernaast. Iedere keer dat iemand zich dan aanmeldt haalt hij eerst het aantal geregistreerde leden op, checkt deze met de database en als er dan nog ruimte blijkt te zijn wordt deze geregistreerd. Zo niet krijgt deze een melding en wordt de inschrijving meteen gesloten.

Dit lijkt mij de beste oplossing om een integratie te maken met informatie van mijn website. Gezien mijn kennis niet dusdanig is ben ik benieuwd of dit gaat werken of dat ik tegen problemen ga aanlopen?

Google levert mij weinig resultaat, zelfs mensen die met hetzelfde vraagstuk zitten.

Dying is God's way of telling you, you've been FIRED.


  • Merethil
  • Registratie: December 2008
  • Laatst online: 05:37
Wat als je nou eerst checked via je database of er nog ruimte is en zo ja, laat je hem pas die API-call doen.
Zo kan je ook direct eenieder die op jouw site komt melden of er nog plek is of niet, zodat ze niet in gaan schrijven om pas achteraf te horen dat er geen ruimte meer is.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:54

Janoz

Moderator Devschuur®

!litemod

Dit zou je kunnen doen. Er is echter wel een probleem waneer je niet de enige bent die gebruik maakt van deze API. Je past immers een soort 'client side restricties' toe. Iemand anders kan die API aanroepen en alsnog een 33e lid inschrijven voor het evenement.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
Merethil schreef op vrijdag 19 oktober 2012 @ 09:20:
Wat als je nou eerst checked via je database of er nog ruimte is en zo ja, laat je hem pas die API-call doen.
Zo kan je ook direct eenieder die op jouw site komt melden of er nog plek is of niet, zodat ze niet in gaan schrijven om pas achteraf te horen dat er geen ruimte meer is.
Dat is inderdaad een goeie, zoiets zal het uiteindelijk ook worden.
Janoz schreef op vrijdag 19 oktober 2012 @ 09:21:
Dit zou je kunnen doen. Er is echter wel een probleem waneer je niet de enige bent die gebruik maakt van deze API. Je past immers een soort 'client side restricties' toe. Iemand anders kan die API aanroepen en alsnog een 33e lid inschrijven voor het evenement.
Dat had ik misschien even moeten melden, de API is account gebonden. Ik heb dan ook een unieke API Code waardoor ik alleen calls kan doen voor mijn eigen evenementen.

Dying is God's way of telling you, you've been FIRED.


  • Merethil
  • Registratie: December 2008
  • Laatst online: 05:37
maxtz0r schreef op vrijdag 19 oktober 2012 @ 09:28:
[...]


Dat is inderdaad een goeie, zoiets zal het uiteindelijk ook worden.


[...]


Dat had ik misschien even moeten melden, de API is account gebonden. Ik heb dan ook een unieke API Code waardoor ik alleen calls kan doen voor mijn eigen evenementen.
Ik denk dat als je hier rekening mee houdt je al vrij ver bent en je het gewoon kan proberen. Lijkt mij geen probleem toch? Ipv dat je de database moet gaan linken met een database die gebruikt wordt bij de API kan je dan gewoon zelf restricties vooraf bepalen.
Zorgt ervoor dat jij de volledige controle houdt.