Functional concepts#
Functional concepts of integration with AEMET in Plone and Volto.
Introduction#
The integration of AEMET (State Meteorological Agency) with Plone CMS and Volto enables official meteorological information to be incorporated into a website, providing users with up-to-date data on weather conditions, forecasts, weather warnings and other relevant climate information.
This integration facilitates the reuse of the web services (REST APIs and XML/JSON files) published by AEMET, enabling Plone to act as an intermediary between the platform and the user interface developed in Volto.
Objectives of integration#
The integration aims to achieve the following objectives:
Display official weather information directly on the website.
Centralise access to AEMET services via the Plone backend.
Reduce direct calls from the browser to external services.
Facilitate the reuse of weather data across different Volto blocks and components.
Enable configuration of the service via the Plone Control Panel.
Integration architecture#
+---------------------------+
| Volto |
| React Frontend |
+------------+--------------+
|
REST API
|
+------------v--------------+
| Plone |
| Integration service |
+------------+--------------+
|
HTTP / HTTPS
|
+------------v--------------+
| API AEMET |
+---------------------------+
Functional components#
Backend (Plone)#
The backend is responsible for:
Managing authentication with the AEMET API.
Making enquiries to meteorological services.
Processing responses in JSON or XML format.
Temporarily storing the information (cache).
Exposing its own REST services to Volto.
Logging errors and events related to the integration.
Frontend (Volto)#
Volto utilises the REST services provided by Plone to:
Display the weather forecast.
Display weather icons.
Show maximum and minimum temperatures.
Display weather warnings.
Integrate the information into reusable blocks.
Service configuration#
The integration must allow the following to be configured from within Plone:
Base URL of the service.
Default county or municipality.
Logging level.
These settings can be stored via a configuration panel (Registry) accessible from the Control Panel.
Weather forecast#
One of the main features is the ability to obtain a forecast for a specific town or town.
The information may include:
Sky conditions.
High temperature.
Low temperature.
Chance of precipitation.
This information can be displayed on a card or block within Volto.
Weather warnings#
Users can view the official warnings issued by AEMET.
Examples:
Heavy rain.
Snowfall.
Strong winds.
Coastal phenomena.
High temperatures.
Low temperatures.
These warnings can be highlighted using visual elements with different priority levels.
Volto blocks#
The integration may offer specific reusable blocks, for example:
Weather Block#
Display:
Weather icon.
Current temperature.
High and low.
Sky condition.
Forecast Block#
Displays the multi-day forecast.
This may include:
Day.
Icon.
Temperatures.
Chance of rain.
Error handling#
The integration must account for situations such as:
AEMET service unavailable.
Timeout.
Municipality does not exist.
Communication error.
The system must log these events and provide clear responses to the frontend.
Security#
The following practices are recommended:
Keep the configuration on the backend only.
Always use HTTPS.
Validate the parameters received from Volto.
Limit the number of permitted queries.
Log invalid access attempts.
Use cases#
Institutional website#
Display the weather forecast for the city where the institution is located.
Benefits of integration#
Official information from AEMET.
Decoupled architecture between backend and frontend.
Reusable components in Volto.
Centralised configuration via Plone.
Scalability for future weather-related features.
Best practices#
Centralise all calls to AEMET in the Plone backend.
Expose only proprietary REST services to Volto.
Implement a configurable cache.
Design reusable blocks for presenting information.
Keep the access key secure and separate from the frontend.
Log errors and monitor the status of the integration to facilitate maintenance.