[php/soap/xml] webservice opzetten, data delen met derden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben al geruime tijd betrokken bij de ontwikkeling van een CMS. Alles verloopt naar wens maar wil wel graag een -kleine- discussie starten over het delen van data.

Opslaan van data
Het is namelijk zo dat met het CMS - ontwikkeld in PHP en MySQL - diverse gebruikers diverse accounts kunnen beheren. Laten we, om het verhaal op gang te brengen, als voorbeeld nemen dat een gebruiker de module `paginabeheer` gebruikt om diverse pagina's te maken en te vullen binnen het CMS voor zijn `account X`. De teksten die hierdoor opgeslagen worden in de database zijn niets anders dan rows in een MySQL-tabel, met niet alleen een uniek ID, maar ook een unieke hash. De hash staat in relatie met het account. Dat wil zeggen, elk stukje data dat wordt opgeslagen in de database voor `account X` is te herkennen aan het veld `hash`. De waarde van de hash is een MD5-hash die ontstaan is uit een unieke code.
Kortom, data opgeslagen in de database.

Data distributeren
Stel dat iemand nu gebruik wil gaan maken van deze data, hoe verkrijgt hij/zij deze data dan? En dan is het met name interessant om na te denken over de distributie van de data naar een andere server dan de server waarop de MySQL database staat. Ofwel, de data moet aangeboden worden maar moet slechts te verkrijgen zijn als je de sleutel van de hash hebt van het betreffende account.

Mogelijkheden van distributie?
Kan op het moment twee opties bedenken om de data openbaar (nogmaals, slechts te verkrijgen met de sleutel) te maken, te weten middels het opstellen van een relatief eenvoudige XML-feed en d.m.v. SOAP of XML-RPC (een goed artikel over de laatstgenoemde opties).

In de praktijk komt het hier op neer. `Klant A` met `Account X` (www.voorbeeld.nl) krijgt de sleutel van zijn account, laat zeggen `abcd`. Hij wil de data van zijn account in zijn PHP-scripts gebruiken en haalt de data als volgt op:

PHP:
1
2
3
4
5
6
7
8
9
// create_feed.php genereert een XML-file met de juiste headers

// bijv. met file_get_contents()
$data = file_get_contents("http://www.cms-server.com/create_feed.php?hash=abcd");
// bijv. met fopen()
$handle = fopen("http://www.cms-server.com/create_feed.php?hash=abcd", "r")

// ook kan uitvoerig gebruik worden gemaakt van de XML-handlers die beschikbaar
// zijn voor PHP. Zie http://nl2.php.net/manual/nl/ref.xml.php.


De SOAP of XML-RPC oplossing staat omschreven op de eerder genoemde link op xml.com.
Zijn er geinteresseerden die hier iets nuttigs over te melden hebben? Graag zou ik antwoord krijgen op bijvoorbeeld de vraag welke methode(s) de voorkeur genieten of juist niet, en waarom. Praktijk ervaringen zijn vanzelfsprekend meer dan welkom.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
*Klein schopje*