Alita-validator Proposal

Abstract
Alita-validator is a simple and easy-to-use API verifier. It provides custom 
business code and business message and returns it to API consumers. Users can 
customize error return packaging.
Users can extend some non generic business related verifiers themselves.


Unlike JSR 380 bean validation standard, alita-validator does not throw an 
exception when the validation fails. Instead, it returns the code and message 
set by the user to the API caller.
At present, the functions are implemented based on spring AOP, and future plans 
are made:
* Provide different implementations for non spring projects
* Add more universal validator
* Provide the way to handle the failure of selection verification: return the 
message to the API caller / throw an exception


The goal of alita-validator is to enable users to focus more on business logic. 
The validation of API parameters is handed over to alita-validator to save the 
code of validation parameters.
Proposal
Alita-validator is still young and not strong enough. I hope that more people 
can know it, develop and strengthen it by donating it to Apache.


Background
In the past, when I was doing API development, there was always a lot of code 
to do parameter verification. Many of these codes were repetitive and boring.
Although there is JSR 380 bean validation standard and there are many 
implementations, these implementations throw the failed message as an 
exception, and there is no corresponding code for the message.
As an API, I want to tell the caller of the API the reason why the verification 
failed so that the corresponding processing can be done.
For example, for the API based on HTTP, the parameters often come from the 
user's input. The UI can handle these error messages and let the user know in 
some way.


Rationale
Alita-validator is developed in Java, which provides API parameter validation 
capability through annotations. Annotations can be used on method parameters or 
in attributes of Java beans.
Through the combination of various verifier annotations, the verification of 
API parameters can be realized. For example, verify whether a string is email, 
and verify that a password meets the complexity requirements, etc.
We expect more interesting features and use cases to emerge from the community 
ranging.


Current Status
Meritocracy
The intent of this proposal is to start building a diverse developer and user 
community around alita-validator following the ASF meritocracy model. 
We plan to invite more people as committers if they are interested and 
contribute to this project.


Community
At present, alita-validator is mainly developed by me and my friends. We hope 
to expand the contributor base by donating to Apache.


Core Developers
At present, alita-validator is mainly developed by me and my friends.


Aligment
The ASF is the natural choice to host the alita-validator project as its goal 
of encouraging community-driven open source projects fits with our vision for 
alita-validator. 


Known Risks
Orphaned products
Alita-validator comes from the needs of my job, but I believe it's not just for 
me. I'll use and perfect it for the rest of my career. As long as I can work, 
it won't be orphaned.


Inexperience with Open Source
Open source brings great convenience to my work, and learning open source can 
improve my ability.
So I think I should make my own contribution to open source.
At present, I actively participate in the development of some open source 
projects, such as Alibaba, Nacos, Apache Dubbo and so on, and have learned some 
experiences from them. They are good learning objects for me.


Homogenous Developers
At present, alita-validator is mainly developed by me and my friends.We work on 
one common code base.


Reliance on Salaried Developers
My friend and I worked together to develop the alita-validator because of our 
interest and practicality, but we didn't get paid for it.
We didn't develop the alita-validator for the company, although we used it in 
our work.


Relationships with Other Apache Products
The development of alita-validator uses some Apache commons products, such as 
maven, commons collections, commons-lang3, etc.


A Excessive Fascination with the Apache Brand
While we respect the reputation of the Apache brand and have no doubt that it 
will attract new contributors 
and users, our interest is primarily to give alita-validator a solid home as an 
open source project 
following an established development model. 
More reasons are provided in the Rationale and Alignment sections.


Documentation
Information about alita-validator can be found at 
https://github.com/KeRan213539/alita-validator.
At present, there are only Chinese documents. We will supplement them as soon 
as possible.


Initial Source
Alita-validator was initially developed with open-sourced.
It is currently hosted on Github.com under an Apache license 2.0 at 
https://github.com/KeRan213539/alita-validator.


External Dependencies
Alita-validator has the following external dependencies.As all dependencies are 
managed using Apache Maven.


* JDK 1.8+
* Apache Maven
* JUnit
* Slf4j
* Apache Commons
* Spring-context
* Spring-boot
* Fastjson
* Lombok
* Aspectjrt


Required Resources
Mailing lists
* alita-validator-private (PMC discussion)
* alita-validator-dev (developer discussion)
* alita-validator-commits (SCM commits)
* alita-validator-issues (JIRA issue feed) 


Subversion Directory
* Git is the preferred source control system. 


Issue Tracking
JIRA Alita-validator (Alita-validator)


Other Resources
The existing source code already has unit tests so we will make use of existing 
Apache continuous testing infrastructure. The resulting load should not be very 
large.


Initial Committers
* Ran Ke(213539 at qq dot com)
* Lei Zhang(freedom801213 at gmail dot com)
* Ping Xu(xu6465 at qq dot com)


Affiliations
The initial committers are friends.


Sponsors


Champion


Nominated Mentors


Sponsoring Entity
We are requesting the Incubator to sponsor this project.

Reply via email to