웹 및 모바일 애플리케이션에 대한 의견이 많은 API.
이것을 다른 언어로 읽으십시오.
Elide는 최소한의 노력으로 모델 Driven GraphQL 또는 JSON API 웹 서비스를 설정할 수있는 Java 라이브러리입니다. Elide는 API의 두 가지 변형을 지원합니다.
Elide는 여러 기능을 지원합니다.
선언적이고 직관적 인 권한 구문을 통해 필드 및 엔티티에 대한 액세스를 제어합니다.
JSON-API & GraphQL을 사용하면 개발자가 한 번의 왕복으로 전체 객체 그래프를 가져올 수 있습니다. 데이터 모델의 요청 된 요소 만 반환됩니다. 돌연변이에 대한 우리의 의견이있는 접근 방식은 일반적인 응용 시나리오를 다룹니다.
필터링, 정렬, 페이지 매김 및 텍스트 검색은 상자에서 지원됩니다.
Elide는 JSON-API 또는 GraphQL의 단일 요청에서 여러 데이터 모델 돌연변이를 지원합니다. 객체를 만들고, 관계에 추가하고, 단일 원자 요청에서 수정 또는 삭제하십시오.
Elide는 강력한 시맨틱 계층으로 제작 된 모델에 대한 분석 쿼리를 지원합니다. API는 Yavin과 기본적으로 작업하여 데이터를 시각화, 탐색 및보고합니다.
생성 된 Swagger 문서 또는 GraphQL 스키마를 통해 Elide API에 대한 쿼리를 탐색, 이해 및 작성하십시오.
계산 된 속성, 데이터 유효성 검사 주석으로 데이터 모델 작업의 동작을 사용자 정의하고 수명주기 후크를 요청하십시오.
Elide는 귀하의 특정 지속 전략에 적합합니다. ORM을 사용하거나 데이터 저장소의 구현을 제공하십시오.
Elide에 대한 자세한 내용은 Elide.io를 참조하십시오.
Elide 예제 서비스를 시도하려면 Elide-Spring-Boot-Amexample 프로젝트를 확인하십시오.
또는 Elide-STANDALONE-AXALLE 프로젝트를 사용하여 임베디트 부두 응용 프로그램 내에서 실행되는 ELIDE의 로컬 인스턴스를 신속하게 설정할 수 있습니다.
Elide를 사용하는 가장 간단한 방법은 JPA를 활용하여 Elide 모델을 지속적으로 매핑하는 것입니다.
모델은 웹 서비스의 도메인 모델을 나타냅니다.
@ Entity
public class Book {
@ Id
private Integer id ;
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}웹 서비스를 통해 모델을 노출시키고 액세스를위한 보안 정책을 정의하기 위해 Elide Annotation을 추가하십시오.
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}웹 서비스를 통해 CRUD 작업으로 인라인을 실행하는 사용자 정의 비즈니스 로직을 포함시키기 위해 모델에 라이프 사이클 후크를 추가하십시오.
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
@ LifeCycleHookBinding ( operation = UPDATE , hook = BookCreationHook . class , phase = PRECOMMIT )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}
public class BookCreationHook implements LifeCycleHook < Book > {
@ Override
public void execute ( LifeCycleHookBinding . Operation operation ,
LifeCycleHookBinding . TransactionPhase phase ,
Book book ,
RequestScope requestScope ,
Optional < ChangeSpec > changes ) {
//Do something
}
}보안 기능 또는 지속성 계층으로 푸시하는 exticates에 대한 맵 표현 :
@ SecurityCheck ( "Admin" )
public static class IsAdminUser extends UserCheck {
@ Override
public boolean ok ( User user ) {
return isUserInRole ( user , UserRole . admin );
}
}이 모델을 노출시키고 쿼리하려면 시작 가이드에 문서화 된 단계를 따르십시오.
예를 들어 API 호출은 다음을보십시오.
테이블, 측정, 치수 및 조인을 포함한 분석 모델은 Pojos 또는 친절한 HJSON 구성 언어로 만들 수 있습니다.
{
tables: [
{
name: Orders
table: order_details
measures: [
{
name: orderTotal
type: DECIMAL
definition: 'SUM({{$order_total}})'
}
]
dimensions: [
{
name: orderId
type: TEXT
definition: '{{$order_id}}'
}
]
}
]
}
분석 모델 구성 또는 쿼리에 대한 자세한 내용은 여기를 참조하십시오.
보안은 여기에서 깊이 문서화됩니다.
참여 방법에 대한 정보는 Contributing.md 파일을 참조하십시오. 우리는 문제, 질문 및 요청을 환영합니다.
Intellij와 같은 IDE를 사용하여 Elide에 기여하는 경우 Lombok 플러그인을 설치하십시오.
커뮤니티 채팅은 이제 Discord에 있습니다. 여기를 클릭하여 가입하십시오.
이 프로젝트는 Apache 2.0 오픈 소스 라이센스의 조건에 따라 라이센스가 부여됩니다. 전체 조건은 라이센스를 참조하십시오.
비디오 소개 비디오
Spring Boot 및 Elide를 사용하여 JSON API REST 서비스 작성
Spring Boot/Elide JSON API 서버를 사용한 사용자 정의 보안
스프링 부팅/ELIDE JSON API 서버에 로그인합니다
Spring Boot 및 Elide로 JSON API REST 서비스 확보
Spring Boot/Elide JSON API 서버에서 엔티티 작성
스프링 부팅/ELIDE JSON API 서버로 업데이트 및 삭제