PostgREST, Haskell로 작성된 모든 PostgreSQL 데이터베이스 용 REST API

PostgREST 로고

PostgREST 독립적 인 웹 서버로 PostgreSQL 데이터베이스를 RESTful API로 직접 변환합니다. Haskell에서 작성, 훨씬 더 깨끗하고 표준을 준수하는 AP를 제공합니다. 구조적 제약과 데이터베이스 권한은 엔드 포인트와 API 작업을 결정합니다.

PostgREST 문서에서는이를 "수동 CRUD 프로그래밍의 대안"으로 설명합니다. PostgREST는 오픈 소스 미들웨어입니다. PostgREST에 의해 노출 된 API는 OpenAPI 사양 (이전의 Swagger 사양)을 준수합니다. 설명서에 따르면 기본적으로 데이터베이스 테이블 간의 종속성을 관리하므로 간단한 REST 요청을 통해 두 테이블 간의 조인에서 데이터를 검색 할 수 있습니다.

PostgREST는 XNUMX 초 미만의 응답 시간으로 매우 빠릅니다. Heroku 프리 티어에서 초당 최대 2000 개의 요청.

"통역 언어로 작성된 서버에 익숙하다면 PostgREST의 성능에 놀랄 준비를하십시오."라고 팀은 말합니다.

팀에 따르면 세 가지 요소가이 속도에 기여합니다..

  1. 첫째, 서버는 Haskell로 작성되었습니다. HTTP Warp 서버 (컴파일 된 언어) 사용.
  2. 그때 가능한 한 많은 계산을 데이터베이스에 위임, JSON 응답을 SQL로 직접 직렬화, 데이터 유효성 검사 등을 포함합니다.
  3. 마지막으로, Hasql 라이브러리를 사용하여 데이터베이스 연결 풀을 유지합니다., PostgreSQL 바이너리 프로토콜이며 수평 확장을 허용하기 위해 상태 비 저장 상태를 유지합니다.

PostgREST 인증 처리 (JSON 웹 토큰을 통해) 그리고 데이터베이스에 정의 된 역할 정보에 권한을 위임합니다. 이렇게하면 보안을위한 선언적 진실 소스가 하나만 있습니다.

데이터베이스를 다룰 때 서버는 현재 인증 된 사용자의 ID를 가정합니다. 연결 중에는 사용자가 할 수없는 작업을 할 수 없습니다. 다른 형태의 인증은 JWT 프리미티브에서 구성 할 수 있습니다.

반면에 데이터 무결성에 관해서, 포스트그레스트 Object Relational Mapper에 의존하는 대신 (ORM) 및 사용자 지정 명령형 인코딩, 이 시스템은 데이터베이스에 직접 선언적 제약을 부과합니다.

따라서 어떤 애플리케이션도 데이터 (API 서버 포함)에 해를 끼칠 수 없습니다. PostgREST는 PUT 요청 적용을 포함하여 문제를 방지하기 위해 다양한 백업과 함께 HTTP 인터페이스를 노출합니다. 즉, 관련된 ORM이 없습니다.

새로운 뷰의 생성은 알려진 성능 영향과 함께 SQL에서 발생합니다. PostgREST의 가장 큰 장점은 데이터베이스 관리자가 사용자 지정 프로그래밍없이 API를 처음부터 만들 수 있다는 것입니다.

어떤 사람들에게는 PostgREST는 또한 NoSQL 또는 GraphQL 데이터베이스에 대한 흥미로운 대안입니다. 관계형 모델을 유지해야하는 경우 API에 기본적으로 노출됩니다. 그들은이 미들웨어가 대규모 Linux 배포판의 패키지 저장소에서 표준으로 제공되지 않는다는 것을 안타깝게 생각합니다.

Linux에 PostgREST를 설치하는 방법은 무엇입니까?

버전 6.0.2는 새로운 추가 사항과 일부 변경 사항을 포함하여 작년 XNUMX 월에 출시되었습니다. 이 버전은 github에서 구할 수 있습니다.

링크는 이쪽입니다.

비슷하게, PostgREST 설치에 관심이있는 분들을 위해 그들은 현재 버전이 터미네이터의 도움으로 지금 당장 얻을 수 있다는 것을 알아야합니다. 그 안에 만 다음을 입력합니다.

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

이제 다음 명령을 사용하여 패키지의 압축을 풀면됩니다.

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

64 비트 버전의 Ubuntu를 사용하는 특수한 경우 :

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

또는 32 비트 버전의 Ubuntu를 사용하는 경우

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

다음과 함께 실행할 수 있습니다.

./postgrest --help

같은 방식으로 Docker 이미지가 준비되며 다음을 입력하여 가져올 수 있습니다.

도커 풀 포스트그레스 트 / 포스트그레스 트

마지막으로 웹 사이트의 문서에서 구성에 대한 자세한 정보를 얻을 수 있습니다. 링크는 이쪽입니다.


기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.