>
> Hi Baoyuan,
>
> Thank you for your response and for the opportunity to further clarify my
> interest in APISIX-39.
>
> After reviewing the current APISIX plugin schemas and the Dashboard’s
> plugin configuration workflow, I would like to outline my proposed approach
> for implementing JSON Schema - Form UI rendering.
>
> My initial plan is structured into the following stages:
>
>    1. Schema Pattern Analysis
>
> ·       Analyze real plugin schemas used in APISIX core.
>
> ·       Categorize commonly used patterns (basic types, enums, nested
> objects, arrays, oneOf, dependencies).
>
> ·       Identify a minimum supported subset for Phase 1 implementation.
>
>    2. Reusable SchemaForm Architecture
>
> ·       Design a reusable SchemaForm component responsible for:
>
> §  Parsing JSON Schema definitions
>
> §  Mapping schema types to UI widgets (Input, Select, Switch, Array
> fields, etc.)
>
> §  Handling default values and required fields
>
> §  Supporting constraints (min/max, pattern, etc.)
>
> §  Create a configurable schema-to-widget mapping layer for extensibility.
>
>    3. Complex Schema Support
>
> ·       Implement support for:
>
>    1. oneof (render selector + dynamic sub-schema rendering)
>          2. dependencies / conditional fields
>
> ·       (Stretch goal) Add support for anyof if needed by target schemas.
>
>    4. Validation Pipeline
>
> ·       Integrate AJV for schema-based validation.
>
> ·       Map validation errors consistently to UI feedback.
>
> ·       Ensure validation behavior aligns with backend expectations.
>
>    5. Testing & Documentation
>
> ·       Add unit tests for schema parsing and conditional rendering logic.
>
> ·       Provide integration tests using real plugin schemas.
>
> ·       Write developer documentation explaining:
>
> 1.       How SchemaForm works
>
> 2.       How to extend widget mappings
>
> 3.       How to support additional JSON Schema keywords
>


> As an incremental milestone, I plan to refactor 1–2 existing plugin
> configuration forms to use the new SchemaForm component to demonstrate
> reduced manual UI logic and improved maintainability.
>
> I would appreciate feedback on:
>
>    - Whether prioritizing oneOf and dependencies early aligns with
>    project expectations.
>    - If there are specific plugin schemas that you recommend targeting as
>    reference implementations.
>    - Any architectural preferences or constraints within the Dashboard
>    frontend that I should consider before drafting the detailed design
>    Proposal.
>
>
>
> Looking forward to your guidance.
>
-- 
Thanks & Regards
*Name:* Ajinkya Jagdish Pathak
*Email:* [email protected]
*Linkedin:* ajinkya_pathak
<https://www.linkedin.com/in/ajinkya-pathak-820675326/>

Reply via email to