Rest API 서버용 Scala 프레임 워크? [닫은]
우리는 Rest API 서버 (웹 서비스 내부, Symfony PHP에 있음)를 Scala로 옮기는 것을 고려하고 있습니다 : 속도, 오버 헤드 없음, CPU 감소, 코드 감소, 확장 성 등 여러 가지 이유로 저는 Scala를 몰랐습니다. 며칠 전부터 저는 스칼라 책과 모든 블로그 게시물과 질문을 통해 요즘 제가 배운 것을 즐기고 있습니다. (그렇게 못 생겼습니다!)
다음과 같은 옵션이 있습니다.
- Rest API 서버를 처음부터 빌드
- Scalatra 와 같은 작은 Scala 웹 프레임 워크 사용
- 리프트 사용
내가 사용해야 할 몇 가지 : HTTP 요청, JSON 출력, MySQL (데이터), OAuth, Memcache (캐시), 로그, 파일 업로드, 통계 (아마도 Redis).
어떤 것을 권 하시죠?
특별한 순서없이 :
- Akka HTTP
- 스프레이
- Paypal squbs (Akka / Spray)
- DropWizard
- REST.li
- http4s
- 파란 눈
- Finagle- 내결함성, 프로토콜에 구애받지 않는 RPC 시스템
- 플레이! 그리고 Play-mini! ( 기사 ) ( 튜토리얼 )
- Lift / Lift JSON.-REST 서비스 제공이 간단합니다.
Unfiltered 추천하겠습니다 . "Scala 방식"을 수행하는 관용적 웹 프레임 워크이며 매우 아름답습니다.
Xitrum (저는 저자입니다) 을 살펴보면 나열된 모든 것을 제공합니다. 그 문서 는 꽤 광범위합니다. README에서 :
Xitrum은 Netty 및 Hazelcast를 기반으로하는 비동기 클러스터형 Scala 웹 프레임 워크 및 웹 서버입니다.
- 어노테이션은 JAX-RS의 정신에 따라 URL 경로에 사용됩니다. 한 곳에서 모든 경로를 선언 할 필요는 없습니다.
- Netty의 정신에 따른 비동기.
- 세션은 쿠키 또는 클러스터 된 Hazelcast에 저장 될 수 있습니다.
- In-process 및 클러스터형 캐시는 별도의 캐시 서버가 필요하지 않습니다.
- In-process 및 클러스터형 Comet, 별도의 Comet 서버가 필요하지 않습니다.
두 가지 옵션을 더 추가 할 것입니다. 기본 제공 JAX-RS 지원이있는 akka와 JAX-RS를 직접 사용하는 것입니다 (아마 Jersey 구현). (매개 변수와 경로를 바인드하기 위해 어노테이션에 의존하는) 다른 것보다 "Scala-y"가 덜하지만 JAX-RS는 사용이 즐겁고 최소한의 풋 프린트로 웹 서비스 코딩의 모든 문제를 깔끔하게 해결합니다. 나는 akka를 통해 그것을 사용하지 않았으며, 연속 기반 구현을 통해 인상적인 확장 성을 얻을 수있을 것으로 예상됩니다.
Finagle HTTP 서비스 를 구축하기위한 Scala 결합기 라이브러리 인 Finch를 살펴보십시오 . Finch를 사용하면 미리 정의 된 기본 블록 수에서 복잡한 HTTP 엔드 포인트를 구성 할 수 있습니다. 파서 결합 자와 마찬가지로 Finch 엔드 포인트는 재사용, 작성, 테스트 및 추론이 쉽습니다.
지금까지 모든 좋은 답변. Lift가 선호하는 점 중 하나는 RestHelper 이며, 짧고 우아한 API 메서드를 작성하기가 매우 쉽습니다. 또한, 당신이하고 싶은 다른 모든 일은 Lift에서 구현하기가 매우 간단해야합니다. 즉, Memcache가 필요하지 않을 수 있습니다.
현장에서 조금 늦었지만 REST API 생성을 위해 Bowler 프레임 워크를 사용하는 것이 좋습니다 . 작은, 포인트 및 자동 케이스 클래스 변환 지원!
참고 URL : https://stackoverflow.com/questions/3678795/scala-framework-for-a-rest-api-server
'Programing' 카테고리의 다른 글
왜 RGB가 아닌 RGB입니까? (0) | 2020.08.14 |
---|---|
오류 (0) | 2020.08.14 |
C ++ 용 Vim 구성 (0) | 2020.08.14 |
passport.session () 미들웨어는 무엇을합니까? (0) | 2020.08.14 |
phpexcel을 사용하여 데이터를 읽고 데이터베이스에 삽입하는 방법은 무엇입니까? (0) | 2020.08.13 |