Hello Michael, Julian, Zhen, and David,
I'm pleased to share an update: a new major version (v2) has been developed,
which addresses many of the considerations discussed in our community feedback.
CalciteRestAPIAdapter v2 - Major Release
Repository: https://github.com/oalekseev/CalciteRestAPIAdapter-v2
Key Improvements in v2:
Configuration & Schema Discovery
OpenAPI-based configuration instead of XML - automatically discovers REST API
schemas without manual field definitions
FreeMarker templates for flexible HTTP request customization (body, headers,
URL parameters)
Supports complex nested structures and format transformations (JSON, XML, CSV)
Advanced Filtering & Query Optimization
DNF/CNF filter support - converts SQL WHERE clauses to Disjunctive/Conjunctive
Normal Form for efficient REST API filtering
Query pushdown - sends filtered data requests directly to REST services,
reducing data transfer
Comprehensive Test Coverage: 13 test classes with 50+ test methods covering:
- Projection pushdown optimization
- Pagination handling with automatic page fetching
- SQL JOIN operations (INNER, SELF, CROSS)
- Multiple REST API filter specification variants (DNF/CNF)
- Nested JSON/XML structure flattening
- Dynamic request headers with FreeMarker templates
- CSV, JSON, and XML response parsing
- Request-only and Response-only parameter handling
- Type mappings for SQL column types
- URL query parameter generation
Status JIRA Ticket CALCITE-7300 Updateted to Resolved
Thank you once again for your constructive guidance!
Best regards,
Oleg Alekseev
GitHub: @oalekseev
Telegram: @oalekseevdev
E-mail: [email protected]
On 2025/11/19 08:31:46 Oleg Alekseev wrote:
>
> Hello Michael, Julian, Zhen, and David,
> Thank you very much for your valuable feedback and suggestions!
>
> I’ve already opened a JIRA ticket to track the process of contributing the
> CalciteRestAPIAdapter:
> https://issues.apache.org/jira/browse/CALCITE-7300
>
> Key points of the current version:
>
> * The adapter is publicly available on GitHub:
> https://github.com/oalekseev/CalciteRestAPIAdapter
> * Full Javadoc, tests, and user documentation are planned to meet project
> standards
> * Considering support for data formats returned by REST services (csv, xml,
> json) to unify parsing
> * Future support for OpenAPI to simplify integrations and increase automation
>
> Julian, regarding integration with the file/web adapter — I agree that it is
> important to carefully consider the proper separation of data formats and
> access protocols. This topic can also be discussed in JIRA to gather
> community opinions.
>
> Thanks again to everyone for the support and constructive comments.
>
> Best regards,
> Oleg Alekseev
> Telegram: @oalekseevdev
> E-mail: [email protected]
> > Четверг , 13 ноября 2025, 18:29 +03:00 от Michael Mior < [email protected]
> > >:
> >
> >Oleg,
> >
> >This looks very promising! I would suggest you open up a JIRA case to track
> >what would need to be done to contribute this adapter. Two things that
> >stick out to me is that there don't appear to be any tests or Javadoc in
> >the repository. This is perfectly reasonable as a starting point of course,
> >but maintenance by the community is going to be much easier with proper
> >tests and documentation.
> >
> >Aside from that, I think there are a lot of interesting things that could
> >be done with the adapter in the future (not as prerequisites for
> >contributing the adapter). For one, alternative authentication methods
> >would likely be helpful. For REST APIs that don't support disjunction, it
> >seems like you may be able to configure the optimizer such that multiple
> >requests would be issued (although this leaves the challenge of
> >deduplication for results that match multiple conditions). As you
> >mentioned, I think OpenAPI support would be very interesting given how
> >popular the format is.
> >
> >--
> >Michael Mior
> >[email protected]
> >
> >
> >On Tue, Nov 11, 2025 at 4:13 AM Oleg Alekseev < [email protected] >
> >wrote:
> >
> >>
> >>
> >>
> >> Hello Apache Calcite community,
> >>
> >> My name is Oleg Alekseev, and I have developed a new adapter called
> >> CalciteRestAPIAdapter designed to retrieve data from REST services using
> >> standard SQL syntax. This adapter leverages the Apache Calcite framework,
> >> enabling access to REST APIs through JDBC by configuring service schemas
> >> and tables via XML files.
> >>
> >> The adapter is publicly available on GitHub:
> >> https://github.com/oalekseev/CalciteRestAPIAdapter
> >>
> >> I would like to propose this adapter as a contribution to the Apache
> >> Calcite project to make it accessible and beneficial to the wider
> >> community.
> >>
> >> Please let me know the appropriate process and any guidelines I should
> >> follow to move forward with submitting this contribution.
> >>
> >> Thank you for your time and consideration.
> >>
> >> Best regards,
> >> Oleg Alekseev
> >>
> >>
> --
> Олег Алексеев
> Отправлено из Почты Mail
>Среда, 19 ноября 2025, 11:31 +03:00 от Oleg Alekseev < [email protected] >:
>
>Hello Michael, Julian, Zhen, and David,
>Thank you very much for your valuable feedback and suggestions!
>
>I’ve already opened a JIRA ticket to track the process of contributing the
>CalciteRestAPIAdapter:
>https://issues.apache.org/jira/browse/CALCITE-7300
>
>Key points of the current version:
>
>* The adapter is publicly available on GitHub:
>https://github.com/oalekseev/CalciteRestAPIAdapter
>* Full Javadoc, tests, and user documentation are planned to meet project
>standards
>* Considering support for data formats returned by REST services (csv, xml,
>json) to unify parsing
>* Future support for OpenAPI to simplify integrations and increase automation
>
>Julian, regarding integration with the file/web adapter — I agree that it is
>important to carefully consider the proper separation of data formats and
>access protocols. This topic can also be discussed in JIRA to gather community
>opinions.
>
>Thanks again to everyone for the support and constructive comments.
>
>Best regards,
>Oleg Alekseev
>Telegram: @oalekseevdev
>E-mail: [email protected]
>>Четверг, 13 ноября 2025, 18:29 +03:00 от Michael Mior < [email protected] >:
>>
>>Oleg,
>>
>>This looks very promising! I would suggest you open up a JIRA case to track
>>what would need to be done to contribute this adapter. Two things that
>>stick out to me is that there don't appear to be any tests or Javadoc in
>>the repository. This is perfectly reasonable as a starting point of course,
>>but maintenance by the community is going to be much easier with proper
>>tests and documentation.
>>
>>Aside from that, I think there are a lot of interesting things that could
>>be done with the adapter in the future (not as prerequisites for
>>contributing the adapter). For one, alternative authentication methods
>>would likely be helpful. For REST APIs that don't support disjunction, it
>>seems like you may be able to configure the optimizer such that multiple
>>requests would be issued (although this leaves the challenge of
>>deduplication for results that match multiple conditions). As you
>>mentioned, I think OpenAPI support would be very interesting given how
>>popular the format is.
>>
>>--
>>Michael Mior
>>[email protected]
>>
>>
>>On Tue, Nov 11, 2025 at 4:13 AM Oleg Alekseev < [email protected] >
>>wrote:
>>
>>>
>>>
>>>
>>> Hello Apache Calcite community,
>>>
>>> My name is Oleg Alekseev, and I have developed a new adapter called
>>> CalciteRestAPIAdapter designed to retrieve data from REST services using
>>> standard SQL syntax. This adapter leverages the Apache Calcite framework,
>>> enabling access to REST APIs through JDBC by configuring service schemas
>>> and tables via XML files.
>>>
>>> The adapter is publicly available on GitHub:
>>> https://github.com/oalekseev/CalciteRestAPIAdapter
>>>
>>> I would like to propose this adapter as a contribution to the Apache
>>> Calcite project to make it accessible and beneficial to the wider community.
>>>
>>> Please let me know the appropriate process and any guidelines I should
>>> follow to move forward with submitting this contribution.
>>>
>>> Thank you for your time and consideration.
>>>
>>> Best regards,
>>> Oleg Alekseev
>>>
>>>
>
>--
>Олег Алексеев
>Отправлено из Почты Mail
--
Олег Алексеев
Отправлено из Почты Mail