easyopen은 간단하고 사용하기 쉬운 개방형 인터페이스 플랫폼으로, 개발자는 비즈니스 코드만 구현하면 됩니다.
easyopen의 기능은 Taobao의 개방형 플랫폼과 유사합니다. 모든 인터페이스는 하나의 URL만 제공하며 다양한 비즈니스는 매개변수를 통해 구별됩니다. 이것의 장점은 인터페이스 URL 관리가 편리하고, 플랫폼 관리자는 인터페이스 매개변수만 유지하면 된다는 것입니다. 매개변수의 수를 알고 있으므로 이를 통해 상당한 수준의 캡슐화가 가능합니다. 캡슐화 후 플랫폼 개발자는 비즈니스 코드만 작성하면 되며 기타 기능은 구성을 통해 완료할 수 있습니다.
Java의 Annotation 기능과 Spring 컨테이너의 Bean 관리 덕분에 우리의 개방형 인터페이스 플랫폼이 탄생했습니다.
1. 별도의 설정 없이 비즈니스 코드 작성 후 바로 서비스를 시작할 수 있습니다.
2. 국제 매개변수 검증(JSR-303)을 지원하는 자동 매개변수 검증.
3. 검증 기능과 결과 반환 기능이 독립적으로 구현되어 있어 맞춤형 구현이나 확장이 용이합니다.
4. 주석을 사용하여 인터페이스를 정의하면 유지 관리가 간단하고 편리해집니다.
5. i18n 국제화 메시지 반환을 지원합니다.
6. Swagger와 유사한 문서 페이지를 자동으로 생성합니다.
7. 매개변수 확인을 위해 디지털 서명을 사용합니다. 서명 알고리즘은 easyopen 서명 알고리즘.txt를 참조하세요.
8. appKey-secret 양식을 사용하여 플랫폼에 액세스합니다. 즉, 액세스 당사자에게 appKey 및 비밀 정보를 제공해야 합니다.
암호화 알고리즘(MD5, AES, RSA)
Netty(코덱, 긴 연결, 연결 끊기 및 다시 연결)
전류 제한(Leaky 버킷 전략, 토큰 버킷 전략)
권한(RBAC, 확인)
세션(독립형, 분산형)
주석(문서 생성)
토큰(jwt,accessToken)
SDK(자바, C#, 자바스크립트)
구성 센터 스크린샷
문서 페이지
인터페이스 정의
@Api(name = "goods.get")public Goods(GoodsParam param) { Goods 상품 = new Goods();goods.setGoods_name("Apple iPhoneX"); (8000)); 반품 상품;}
데이터 요청
{ "name": "goods.get", "version": "", "app_key": "test", "data": "%7B%22goodsPrice%22%3A%22%22%2C%22goods_name%22% 3A%22iphoneX%22%7D", "timestamp": "2018-03-22 13:48:58", "format": "json", "sign": "C946ACA5AC95B1790511764A10E675B7"}
결과 반환
{ "코드":"0", "데이터":{ "goods_name":"Apple iPhoneX", "id":1, "price":8000 }}
easyopen: easyopen: 핵심 코드
easyopen-configuration: 구성 센터 [선택 사항]
easyopen-demo: 인터페이스 서버 데모(springboot, springmvc 포함)
easyopen-ext: 확장 패키지(회로 차단기, 다운그레이드 등 향상된 기능 제공)
easyopen-sdk: 인터페이스에 해당하는 SDK(Java, C#, Javascript 포함)
easyopen-starter: springboot에 해당하는 스타터
개발 문서: 개발 문서
1. easyopen-demo에서 easyopen-server-manual을 시작합니다(비즈니스 코드는 GoodsApi.java에 있음).
2. easyopen-sdk 아래 sdk-java에서 SdkTest.java를 실행합니다.