GraphQL 또는 Hasura로 이메일을 보내는 방법
Hyperlambda이 그러한 API 게이트웨이 생성을 크게 지원하기 때문에 이것은 쉽습니다. 대략 10분 정도에 이러한 엔드포인트를 생성하는 비디오를 살펴보겠습니다.
코드의 기본 아이디어는 먼저 JWT Bearer 토큰을 추출한 다음 이를 Hasura의 GraphQL 끝점으로 전달하는 것입니다. 그런 다음 클라이언트가 제공한 모든 페이로드를 Hasura로 향하는 [http.post] 호출에 추가합니다. 호출이 반환되면 Hasura가 우리에게 반환하는 모든 것을 클라이언트에게 반환합니다. 이 시점에서 남은 유일한 질문은 GraphQL 엔드포인트를 호출하기 전이나 후에 이메일을 보내야 하는지 여부입니다. 예를 들어 Hasura가 성공 상태 코드를 반환했는지 여부를 확인하여 게이트웨이를 쉽게 확장할 수 있지만 이는 독자에게 맡기겠습니다.
시작하려면 먼저 여기에서 low-code Hyperlambda cloudlet에 가입하세요. 그런 다음 위의 비디오를 보고 이 문서의 맨 아래에서 코드를 찾으십시오. 저는 Hasura 프로젝트가 없기 때문에 실제로 GraphQL 이메일 보내기 로직을 테스트하지 않았고 개인적으로 분명한 이유로 Hyperlambda를 선호합니다.
// Accept any arguments.
.arguments:*
// Validating user is giving us a valid email address.
validators.email:x:@.arguments/*/email
// Retrieving JWT Bearer token to transmit to Hasura.
request.headers.get:Authorization
// Lambda object responsible for sending our email.
.send-email
mail.smtp.send
message
to
foo
subject:This is subject
entity:text/plain
content:Hello world from Hyperlambda HTTP API gateway.
/* Changes the "to" parts of our send email invocation
* to whatever argument we're given by client.
*/
set-value:x:@.send-email/**/foo
get-value:x:@.arguments/*/email
set-name:x:@.send-email/**/foo
get-value:x:@.arguments/*/name
// Forwarding arguments given to endpoint to invocation to Hasura
add:x:+/*/payload
get-nodes:x:@.arguments/*
// Invoking Hasura's GraphQL endpoint.
http.post:"https://my-app.hasura.io/graphql-endpoint"
headers
Authorization:x:@request.headers.get
payload
convert:true
// Send the email AFTER invoking GraphQL endpoint.
eval:x:@.send-email
// Return result to caller.
add:x:+
get-nodes:x:@http.post/*/content/*
return
이것으로 46줄의 코드로 Hasura GraphQL HTTP 끝점을 호출할 때 이메일을 보낼 수 있습니다. :)
물론 게이트웨이에 적용하려는 모든 비즈니스 논리를 적용할 수 있습니다. 예를 들어 위의 코드에서 전달된 이메일 인수가 유효한 이메일인지 확인하고 있습니다. 향후 기사에서는 추가 인터셉터를 생성하여 적용하려는 모든 비즈니스 로직을 적용하고 원하는 대로 GraphQL 끝점을 가로채는 방법을 통해 이를 실제로 수행하는 방법에 대해 자세히 설명할 것입니다.
이 솔루션은 분명히 Supabase 및 PostgREST API에 대해 동일하게 잘 작동하며 "에지 기능"에 비해 대부분의 솔루션을 이해하기가 훨씬 더 간단해집니다.
결론
물론 이 시점에서 분명한 질문은
Why on earth do I need GraphQL and Hasura when I’ve got Hyperlambda?
나는 위의 질문에 대한 지능적인 대답이 전혀 없으며 그것에 대한 지능적인 대답도 존재하지 않는다고 생각합니다. 그러나 대답이 있다면 아래 의견에서 저를 계몽하십시오 ...
Reference
이 문제에 관하여(GraphQL 또는 Hasura로 이메일을 보내는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/polterguy/how-to-send-email-with-graphql-or-hasura-55bl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)