Web Services Integration
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
- Status:
- Started
- Approver:
- Chad Heuschober
- Priority:
- Medium
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- Fabio Albuquerque
- Definition:
- Approved
- Series goal:
- Accepted for mayon
- Implementation:
- Started
- Milestone target:
- 2.0.0
- Started by
- Chad Heuschober
- Completed by
Related branches
Related bugs
Whiteboard
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/
--
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.