A2UI + Spring Boot Enterprise Integration ( Live Demo ) #468
vishalmysore
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🎯 Overview
I've built an implementation of A2UI v0.8 using Angular on the frontend and Java with Spring Boot on the backend, powered by the a2ajava framework. This showcase demonstrates how to leverage A2UI to provide dynamic, intelligent user interfaces driven entirely by backend business logic.
The goal: Keep it dead simple while continuously enhancing based on community feedback.
Live Demo: https://vishalmysore.github.io/simplea2ui/
Try these queries:
🚀 What Makes This Special
1. Annotation-Driven Architecture
Define agents and actions with simple Java annotations:
2. Dual-Mode Protocol Support
Same codebase serves both A2UI-enabled clients and plain text clients:
3. Full A2UI v0.8 Spec Compliance
Implements all key features:
textproperty data bindingcontextarray for parameter extractionkey/valueMap/valueString)💡 Real-World Use Cases
Use Case 1: Favorite Food Lookup with Form
User asks: "What does Vishal like to eat?"
Backend generates:
User interaction:
Use Case 2: Multi-Step Restaurant Booking
User asks: "Book a restaurant for me"
First Action (
bookRestaurantReservation):/reservation/date,/reservation/menu/entree, etc.Second Action (
confirmReservation):🛠️ Technical Stack
📐 Architecture Highlights
Data Model Binding (A2UI v0.8)
Our implementation uses the correct adjacency list format:
{ "dataModelUpdate": { "contents": [ { "key": "form", "valueMap": [ { "key": "name", "valueString": "" }, { "key": "email", "valueString": "" } ] } ], "surfaceId": "favorite_food" } }Button Context Bindings
Buttons specify exactly which data model values to extract:
TextField Component
TextFields use
textproperty (notvalue) per A2UI v0.8 spec:{ "component": { "TextField": { "label": { "literalString": "Person's Name" }, "text": { "path": "/form/name" } } }, "id": "name_input" }🎨 Code Example: Complete Service
🏆 Key Achievements
A2UIDisplayutility interface provides helper methods for all servicesNote: This is an evolving implementation. I'm continuously enhancing it based on community feedback while keeping the core design dead simple.
Book restaurant

Find and compare cars

Beta Was this translation helpful? Give feedback.
All reactions