Incubating Program: Modelized Data Interface (MDI)
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 267
- Forks
- 154
- PR merge metrics
- No merged PRs in 30d
Description
Project Incubating Request
Modelized Data Interface(Hereinafter referred to as, MDI)
Describe the project you want to incubate:
Summary
We note that there is no dedicated data service tool in the TiDB ecosystem, i.e., it is easy to obtain high-performance APIs for data manipulation (or access) through existing databases in order to achieve the goal of simplifying (or replacing) the back-end development work without repeating the inefficient work of developing interfaces for third-party systems.
Motivation
This project mainly addresses the following issues.
- Centralized data management. TiDB is naturally suitable for storing large amount of data and becoming a data center, then the management of these data is required to have special tools. the functions currently designed by MDI include the management of data models and their versions, the management of model relationships, and the management of data access rights.
- Flexible data query. Most of the Automatic API generation Tool on the market currently generates traditional APIs like restful, which is less flexible and less available. Then MDI also supports custom queries like GraphQL and OData to improve the flexibility of system queries and the availability of APIs, and really reduce the back-end development workload. In addition, in order to support more complex queries, you can consider SQL wrapping function to wrap a segment SQL query into an API.
- Flexible data processing. Combined crosstalk function of APIs. Encapsulate a simple business logic and become a restful API by arranging add, delete, and check APIs with some transactional.
- Alternatives to triggers. TiDB currently does not support triggers, and the implementation of related functions requires users to operate at the business level, which is tedious. MDI can provide a unified URL callback function to achieve a trigger-like effect.
Estimated Time
6 Months
Your RFC/Proposal?
A POC version has been implemented internally in our company. It already has features related to automatic generation of restful API and GraphQL, OData API, other features mentioned above are yet to be improved. In addition, the code specification, unit testing are to be improved. We are now ready to open source this project, with the power of the community to give it more life.Here is the open source code for this project:https://github.com/DigitalChinaOpenSource/MDI-kernel
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked MDI-kernel repository and compare its existing RESTful API, GraphQL, and OData proof-of-concept features with this proposal. The issue identifies unit testing and code specification as incomplete, but a suitable outcome would first require a defined, concrete incubation scope beyond the six-month project estimate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, sql
- Domain
- api, backend-api-design, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100