Web Services Integration

Registered by Darlene McCullough

The purpose of this project is to identify and develop a standards-based web service for one of Agasti Mayon's many datapoints and to use the developed code as a template for the development of additional services after the closure of the GSoC project. While identification of which datapoint to expose is part of this project, it is strongly recommend that the exposed service either comply with existing emergency management standards such as PFIF or any of the EDXL standards and/or provide a service consumable by other Sahana Software Foundation softwares such as Eden or Vesuvius. The the selected student will work with the project mentor to identify a datapoint, design the request parameters, select the data from the Doctrine ORM models, and respond using JSON and XML, depending on the user request. Requests and responses should be RESTful and will need to be integrated with the sfGuard authentication suite to prevent unintended data exposure. This project also supports the creation of the relevant routes and application control panels, as-appropriate. Project code, at closure, should be packaged and be independently installable as a module or package.

Blueprint information

Chad Heuschober
Fabio Albuquerque
Series goal:
Accepted for mayon
Milestone target:
milestone icon 2.0.0
Started by
Chad Heuschober


Possibility to create a table of Web Service Clients (check another way to save these clients).

Authentication through generated token or sfGuard?
ch: sfGuard is preferred but both would be nice

Create Models manually or via symfony script? How to do that within the packages?
ch: Models are created by creating or editing a schema.yml file. These are found in the package's config directory and the main config for the application. The commands to generate models can be seen in thelper script 'clean-project.sh'

Reuse the schemas.yml or create another one with the necessary entities?
ch: I wouldn't do anything with the main schema.yml. Before adding tables, make a formal suggestion on what you want to add and why and we can discuss links. The schema.yml you'll want to use is in the webservices' config folder.

Why are there plugins (they look like packages and they have schemas.yml) and packages (they have schemas.yml too)?
ch: plugins in symfony terms are plugins to the symfony framework. There are some packages in apps/frontend/modules that are like the packages but are more deeply tied into the application (think of them more as 'core' application).

Currently the Web Service is receiving a parameter (JSON or XML) and creating a proper document. It's necessary to finish a test to check it automatically and to enhance queries and security.


Work Items

This blueprint contains Public information 
Everyone can see this information.


No subscribers.