mirror of https://github.com/knative/docs.git
Updated to sdk-rust 0.2 (#2730)
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
This commit is contained in:
parent
35eb9e28d2
commit
0bdea0de88
|
@ -291,9 +291,9 @@ checksum = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-trait"
|
name = "async-trait"
|
||||||
version = "0.1.31"
|
version = "0.1.36"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b"
|
checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -453,15 +453,14 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cloudevents-sdk"
|
name = "cloudevents-sdk"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7a971dc6acd87980d58a5bab97f27dc62508bd0aa4fb057333d351c48304d556"
|
checksum = "7c814591b300c224c5705c7579a4c80d68aa3472c0d9f0da8c20a74ce40b4bed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.12.1",
|
"base64 0.12.1",
|
||||||
"chrono",
|
"chrono",
|
||||||
"delegate",
|
"delegate",
|
||||||
"hostname",
|
"hostname",
|
||||||
"lazy_static",
|
|
||||||
"serde",
|
"serde",
|
||||||
"serde-value",
|
"serde-value",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
@ -473,30 +472,30 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cloudevents-sdk-actix-web"
|
name = "cloudevents-sdk-actix-web"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "55ca203e31e58bb17bc857700a9ee696b2c599076d10896f14720b5db59071fb"
|
checksum = "8d0b874f8f39a3c09b9d114c4d8e9976e23e95c1a9bce7842eca3b54ca13b413"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
"cloudevents-sdk",
|
"cloudevents-sdk",
|
||||||
"futures",
|
"futures",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"serde_json",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cloudevents-sdk-reqwest"
|
name = "cloudevents-sdk-reqwest"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2f92f4beec5ec951c579a4a9f9d121d3936a5945242893ccc757d617f0c90f51"
|
checksum = "99cd21a76c14f95331e162fcf6bbafb13d02c5fd5098c1c3e0424f9dddac929c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
"cloudevents-sdk",
|
"cloudevents-sdk",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"serde_json",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -21,9 +21,9 @@ edition = "2018"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
cloudevents-sdk = "0.1.0"
|
cloudevents-sdk = "0.2.0"
|
||||||
cloudevents-sdk-actix-web = "0.1.0"
|
cloudevents-sdk-actix-web = "0.2.0"
|
||||||
cloudevents-sdk-reqwest = "0.1.0"
|
cloudevents-sdk-reqwest = "0.2.0"
|
||||||
reqwest = { version = "0.10.4", default-features = false, features = ["rustls-tls"] }
|
reqwest = { version = "0.10.4", default-features = false, features = ["rustls-tls"] }
|
||||||
actix-web = "2"
|
actix-web = "2"
|
||||||
actix-rt = "1"
|
actix-rt = "1"
|
||||||
|
|
|
@ -20,33 +20,28 @@ extern crate log;
|
||||||
use actix_web::dev::HttpResponseBuilder;
|
use actix_web::dev::HttpResponseBuilder;
|
||||||
use actix_web::http::StatusCode;
|
use actix_web::http::StatusCode;
|
||||||
use actix_web::{post, web, App, HttpRequest, HttpResponse, HttpServer};
|
use actix_web::{post, web, App, HttpRequest, HttpResponse, HttpServer};
|
||||||
use cloudevents::event::EventBuilderV10;
|
use cloudevents::{EventBuilder, EventBuilderV10};
|
||||||
use reqwest;
|
use cloudevents_sdk_actix_web::{RequestExt, HttpResponseBuilderExt};
|
||||||
use url::Url;
|
use cloudevents_sdk_reqwest::RequestBuilderExt;
|
||||||
|
|
||||||
#[post("/")]
|
#[post("/")]
|
||||||
async fn reply_event(
|
async fn reply_event(
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
payload: web::Payload,
|
payload: web::Payload,
|
||||||
) -> Result<HttpResponse, actix_web::Error> {
|
) -> Result<HttpResponse, actix_web::Error> {
|
||||||
let request_event = cloudevents_sdk_actix_web::request_to_event(&req, payload).await?;
|
let request_event = req.into_event(payload).await?;
|
||||||
info!("Received Event: {:?}", request_event);
|
info!("Received Event: {:?}", request_event);
|
||||||
|
|
||||||
// Build response event cloning the original event and setting the new type and source
|
// Build response event cloning the original event and setting the new type and source
|
||||||
let response_event = EventBuilderV10::from(request_event)
|
let response_event = EventBuilderV10::from(request_event)
|
||||||
.source(
|
.source("https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust")
|
||||||
Url::parse(
|
|
||||||
"https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust",
|
|
||||||
)
|
|
||||||
.unwrap(),
|
|
||||||
)
|
|
||||||
.ty("dev.knative.docs.sample")
|
.ty("dev.knative.docs.sample")
|
||||||
.build();
|
.build()
|
||||||
|
// If i can't build the event, fail with internal server error
|
||||||
|
.map_err(actix_web::error::ErrorInternalServerError)?;
|
||||||
|
|
||||||
cloudevents_sdk_actix_web::event_to_response(
|
HttpResponseBuilder::new(StatusCode::OK)
|
||||||
response_event,
|
.event(response_event)
|
||||||
HttpResponseBuilder::new(StatusCode::OK),
|
|
||||||
)
|
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,23 +53,20 @@ async fn forward_event(
|
||||||
) -> Result<HttpResponse, actix_web::Error> {
|
) -> Result<HttpResponse, actix_web::Error> {
|
||||||
let sink_url: &str = &sink_url;
|
let sink_url: &str = &sink_url;
|
||||||
|
|
||||||
let request_event = cloudevents_sdk_actix_web::request_to_event(&req, payload).await?;
|
let request_event = req.into_event(payload).await?;
|
||||||
info!("Received Event: {:?}", request_event);
|
info!("Received Event: {:?}", request_event);
|
||||||
|
|
||||||
// Build response event cloning the original event and setting the new type and source
|
// Build response event cloning the original event and setting the new type and source
|
||||||
let forward_event = EventBuilderV10::from(request_event)
|
let forward_event = EventBuilderV10::from(request_event)
|
||||||
.source(
|
.source("https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust")
|
||||||
Url::parse(
|
|
||||||
"https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust",
|
|
||||||
)
|
|
||||||
.unwrap(),
|
|
||||||
)
|
|
||||||
.ty("dev.knative.docs.sample")
|
.ty("dev.knative.docs.sample")
|
||||||
.build();
|
.build()
|
||||||
|
// If i can't build the event, fail with internal server error
|
||||||
|
.map_err(actix_web::error::ErrorInternalServerError)?;
|
||||||
|
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
let response = cloudevents_sdk_reqwest::event_to_request(forward_event, client.post(sink_url))
|
let response = client.post(sink_url)
|
||||||
// If i can't build the request, fail with internal server error
|
.event(forward_event)
|
||||||
.map_err(actix_web::error::ErrorInternalServerError)?
|
.map_err(actix_web::error::ErrorInternalServerError)?
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await
|
||||||
|
|
Loading…
Reference in New Issue