Do REST in PHP – PHP RESTful Data Services

In RESTful paradigm we give a piece of data ( or in other word ‘Resource’) a unique URL. And in order to manipulate data we use HTTP verbs POST/PUT (create, update), GET (read), DELETE (delete). For an example
take the scenario of manipulating Students data in a high school. Here is how each operation is mapped to a http request (URL + HTTP verb)

HTTP request Operation
POST api/students/ben Create the resource (peice of data) called ben as a student. HTTP body or the url itself (e.g. api/students/ben?age=15&country=xx) may contain the required information about ben
GET api/students/ben Retrieve the information about ben.
PUT api/students/ben Update ben
DELETE api/student/ben Delete the student called ‘ben’.

With the addition of all these HTTP verbs WSO2 WSF/PHP 2.0.0 become a great tool for RESTful developers. Specially with the introducing Data Services library it was so easy to make your database a REST service. I m thinking of preparing a series of application to demonstrate the power of WSF/PHP with all these new features.

This demo –RESTful School– shows how you map a URL to a peice of data. Here we use only the http “GET” method (which is the most to used in practicle data service).

Here is some description of the operations you find in there. Just check the source code for RESTful School demo to see how this is done in code level.

Operation URL SQL Query Note
Get All subjects
subjects
SELECT subjectName, subjectTeacher FROM Subjects
With no parameters
Get subject information From Name
subjects/{name}
SELECT subjectName, subjectTeacher FROM Subjects where SubjectName = ?
The single parameter feed from prepared statement syntax
Get All students
students
SELECT * FROM Students
Again no parameters
Get students From Name
students/{name}
Inner Query:

SELECT subjectName, marks FROM Marks m, Subjects s ".
        " where m.studentId = ? and m.subjectID = s.subjectId

Outer Query

SELECT * FROM Students where StudentName = ?
Nested query, Inner query is called from outer query
Get Marks per Students per Subjects
students/{student}/marks/{subject}
SELECT marks FROM Marks, Subjects, Students where StudentName = ?".
        " and SubjectName = ? and Marks.subjectId = Subjects.subjectId".
        " and Marks.studentID = Students.StudentId;
Two parameters, and ‘?’ in the sql query..
This entry was posted in DataServices, Tutorial/Guide, web services, wsf/php, wso2 and tagged , , , , , , , , , , , , . Bookmark the permalink.

6 Responses to Do REST in PHP – PHP RESTful Data Services

  1. Pingback: links for 2008-09-20 | NeXt

  2. Pingback: RESTful CRUD Data Services Demo | Dimuthu's Blog

  3. Pingback: RESTful School demo with PHP REST Framework « Samisa Abeysinghe - Service Oriented Architecture

  4. Pingback: Top articles on WSF/PHP Data Services | Milinda Pathirage's Blog

  5. Pingback: Writing a Simple REST and SOAP Service With PHP | Dimuthu's Blog

  6. dimuthu says:

    If you like to read more about REST with PHP, read this book RESTful PHP Web Services.
    My review of this book can be found here, RESTful PHP Web Services – Book Review.

Leave a Reply

Your email address will not be published. Required fields are marked *