이 패키지는 백엔드에 Haskell과 Elm의 Frontend에 웹 서버를 작성하기위한 최신 생산 수준의 배터리 배터리 시작 템플릿을 목표로합니다. 세 층 케이크를 따릅니다. 건축 패턴.
여기에 사용 된 Haskell 라이브러리 :
relude : 대체 전주곡; 여기에서 base-noprelude 트릭이 사용됩니다.co-log : 복합 가능한 비밀 조화성 코모네드 로깅 라이브러리.postgresql-simple : 데이터베이스 상호 작용을위한 중간 수준 PostgreSQL 클라이언트 라이브러리.servant : 웹 서비스를 정의하기위한 라이브러리 제품군은 API를 유형 수준에서 REST API.elm-street : ELM과 HASKELL 사이의 브리지 - ELM 데이터 유형, JSON 인코더 및 디코더 생성 Haskell 유형에서 자동으로.proto-lens : 모바일 애플리케이션과의 통합을위한 프로토 비프 메시지.ekg : 응용 프로그램 성능 모니터링.bcrypt : 암호 해싱 함수.jwt : JWT를 통한 사용자 인증.hspec 및 hedgehog : 라이브러리 테스트. 이 섹션에는 선택한 아키텍처와 특정 구현에 대한 자세한 설명이 포함되어 있습니다.
전체 애플리케이션의 런타임 환경의 데이터 유형은 Lib/App/Env.hs 모듈에 정의되어 있습니다. 데이터베이스 풀, JWT 비밀, 로거 등과 같은 응용 프로그램 처리에 필요한 다양한 필드가 포함되어 있습니다. 또한 응용 프로그램의 다른 부분을 추출하는 방법을 알려주는 사용자 Has 인스턴스가 있습니다. 이것은 다음 목적을 달성하기 위해 수행됩니다.
환경 초기화는 Lib.hs 모듈에서 발생합니다.
모듈 Lib/App/Error.hs 에는 응용 프로그램이 던질 수있는 모든 오류의 철저한 목록이 포함되어 있습니다. 이 모듈은 사람이 읽을 수있는 오류 이름과 HTTP 오류 코드간에 편리한 계층을 제공합니다. 또한 오류를 던지고 오류의 CallStack 포맷에 유용한 유틸리티가 포함되어 있습니다.
주요 응용 프로그램 Monad는 Lib/App/Monad.hs 모듈에서 찾을 수 있습니다.
이 템플릿은 PostgreSQL 데이터베이스를 사용하며 postgresql-simple 라이브러리의 기능 주위에 헬퍼 래퍼가 포함되어있어 Monad와 더 매끄럽게 통합됩니다. 자세한 내용은 Lib/Db/Functions.hs 참조하십시오.
이메일 보내기 등 모든 새로운 효과 (파일 저장 등)를 Lib/Effects/ Directory에 추가해야합니다.