From 2bd535f9d00caee4b504e6d71aa82c286d806a1a Mon Sep 17 00:00:00 2001 From: Jacek Kucharczyk Date: Fri, 21 Jul 2023 16:24:39 +0200 Subject: [PATCH] pubsub/natspubsub: added examples and gathered examples to internal/website/data/examples.json --- internal/website/data/examples.json | 8 +-- pubsub/natspubsub/example_test.go | 77 +++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/internal/website/data/examples.json b/internal/website/data/examples.json index 7fb667217e..0afc3c1e50 100644 --- a/internal/website/data/examples.json +++ b/internal/website/data/examples.json @@ -273,7 +273,7 @@ }, "gocloud.dev/pubsub/natspubsub.ExampleOpenSubscriptionV2": { "imports": "import (\n\t\"context\"\n\n\t\"github.com/nats-io/nats.go\"\n\t\"gocloud.dev/pubsub/natspubsub\"\n)", - "code": "natsConn, err := nats.Connect(\"nats://nats.example.com\")\nif err != nil {\n\treturn err\n}\ndefer natsConn.Close()\n\nsubscription, err := natspubsub.OpenSubscriptionV2(\n\tnatsConn,\n\t\"example.mysubject\",\n\tnil)\nif err != nil {\n\treturn err\n}\ndefer subscription.Shutdown(ctx)" + "code": "natsConn, err := nats.Connect(\"nats://nats.example.com\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer natsConn.Close()\n\n\tsubscription, err := natspubsub.OpenSubscriptionV2(\n\t\tnatsConn,\n\t\t\"example.mysubject\",\n\t\tnil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer subscription.Shutdown(ctx)" }, "gocloud.dev/pubsub/natspubsub.ExampleOpenTopic": { "imports": "import (\n\t\"context\"\n\n\t\"github.com/nats-io/nats.go\"\n\t\"gocloud.dev/pubsub/natspubsub\"\n)", @@ -281,7 +281,7 @@ }, "gocloud.dev/pubsub/natspubsub.ExampleOpenTopicV2": { "imports": "import (\n\t\"context\"\n\n\t\"github.com/nats-io/nats.go\"\n\t\"gocloud.dev/pubsub/natspubsub\"\n)", - "code": "natsConn, err := nats.Connect(\"nats://nats.example.com\")\nif err != nil {\n\treturn err\n}\ndefer natsConn.Close()\n\ntopic, err := natspubsub.OpenTopicV2(natsConn, \"example.mysubject\", nil)\nif err != nil {\n\treturn err\n}\ndefer topic.Shutdown(ctx)" + "code": "natsConn, err := nats.Connect(\"nats://nats.example.com\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer natsConn.Close()\n\n\ttopic, err := natspubsub.OpenTopicV2(natsConn, \"example.mysubject\", nil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer topic.Shutdown(ctx)" }, "gocloud.dev/pubsub/natspubsub.Example_openQueueSubscriptionFromURL": { "imports": "import (\n\t\"context\"\n\n\t\"gocloud.dev/pubsub\"\n\t_ \"gocloud.dev/pubsub/natspubsub\"\n)", @@ -293,7 +293,7 @@ }, "gocloud.dev/pubsub/natspubsub.Example_openSubscriptionV2FromURL": { "imports": "import (\n\t\"context\"\n\n\t\"gocloud.dev/pubsub\"\n\t_ \"gocloud.dev/pubsub/natspubsub\"\n)", - "code": "// pubsub.OpenSubscription creates a *pubsub.Subscription from a URL.\n\t// This URL will Dial the NATS server at the URL in the environment variable\n\t// NATS_SERVER_URL and receive messages with subject \"example.mysubject\".\n\t// This URL will be parsed and the natsv2 attribute will be used to\n\t// use NATS v2.2.0+ native message headers as the message metadata.\n\tsubscription, err := pubsub.OpenSubscription(ctx, \"nats://example.mysubject?natsv2\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer subscription.Shutdown(ctx)" + "code": "// pubsub.OpenSubscription creates a *pubsub.Subscription from a URL.\n\t// This URL will Dial the NATS server at the URL in the environment variable\n\t// NATS_SERVER_URL and receive messages with subject \"example.mysubject\".\n\t// This URL will be parsed and the natsv2 attribute will be used to\n\t// use NATS v2.2.0+ native message headers as the message metadata.\n\tsubscription, err := pubsub.OpenSubscription(ctx, \"nats://example.mysubject?natsv2\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer subscription.Shutdown(ctx)" }, "gocloud.dev/pubsub/natspubsub.Example_openTopicFromURL": { "imports": "import (\n\t\"context\"\n\n\t\"gocloud.dev/pubsub\"\n\t_ \"gocloud.dev/pubsub/natspubsub\"\n)", @@ -301,7 +301,7 @@ }, "gocloud.dev/pubsub/natspubsub.Example_openTopicV2FromURL": { "imports": "import (\n\t\"context\"\n\n\t\"gocloud.dev/pubsub\"\n\t_ \"gocloud.dev/pubsub/natspubsub\"\n)", - "code": "\t// pubsub.OpenTopic creates a *pubsub.Topic from a URL.\n\t// This URL will Dial the NATS server at the URL in the environment variable\n\t// NATS_SERVER_URL and send messages with subject \"example.mysubject\".\n\t// This URL will be parsed and the natsv2 attribute will be used to\n\t// use NATS v2.2.0+ native message headers as the message metadata.\n\ttopic, err := pubsub.OpenTopic(ctx, \"nats://example.mysubject?natsv2\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer topic.Shutdown(ctx)" + "code": "// pubsub.OpenTopic creates a *pubsub.Topic from a URL.\n\t// This URL will Dial the NATS server at the URL in the environment variable\n\t// NATS_SERVER_URL and send messages with subject \"example.mysubject\".\n\t// This URL will be parsed and the natsv2 attribute will be used to\n\t// use NATS v2.2.0+ native message headers as the message metadata.\n\ttopic, err := pubsub.OpenTopic(ctx, \"nats://example.mysubject?natsv2\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer topic.Shutdown(ctx)" }, "gocloud.dev/pubsub/rabbitpubsub.ExampleOpenSubscription": { "imports": "import (\n\t\"context\"\n\n\tamqp \"github.com/rabbitmq/amqp091-go\"\n\t\"gocloud.dev/pubsub/rabbitpubsub\"\n)", diff --git a/pubsub/natspubsub/example_test.go b/pubsub/natspubsub/example_test.go index 684a3eb29e..435211ff34 100644 --- a/pubsub/natspubsub/example_test.go +++ b/pubsub/natspubsub/example_test.go @@ -19,6 +19,7 @@ import ( "log" "github.com/nats-io/nats.go" + "gocloud.dev/pubsub" "gocloud.dev/pubsub/natspubsub" ) @@ -131,3 +132,79 @@ func Example_openQueueSubscriptionFromURL() { } defer subscription.Shutdown(ctx) } + +func ExampleOpenSubscriptionV2() { + // PRAGMA: This example is used on gocloud.dev; PRAGMA comments adjust how it is shown and can be ignored. + // PRAGMA: On gocloud.dev, add a blank import: _ "gocloud.dev/pubsub/natspubsub" + // PRAGMA: On gocloud.dev, hide lines until the next blank line. + ctx := context.Background() + natsConn, err := nats.Connect("nats://nats.example.com") + if err != nil { + log.Fatal(err) + } + defer natsConn.Close() + + subscription, err := natspubsub.OpenSubscriptionV2( + natsConn, + "example.mysubject", + nil) + if err != nil { + log.Fatal(err) + } + defer subscription.Shutdown(ctx) +} + +func ExampleOpenTopicV2() { + // PRAGMA: This example is used on gocloud.dev; PRAGMA comments adjust how it is shown and can be ignored. + // PRAGMA: On gocloud.dev, add a blank import: _ "gocloud.dev/pubsub/natspubsub" + // PRAGMA: On gocloud.dev, hide lines until the next blank line. + ctx := context.Background() + + natsConn, err := nats.Connect("nats://nats.example.com") + if err != nil { + log.Fatal(err) + } + defer natsConn.Close() + + topic, err := natspubsub.OpenTopicV2(natsConn, "example.mysubject", nil) + if err != nil { + log.Fatal(err) + } + defer topic.Shutdown(ctx) +} + +func Example_openTopicV2FromUrl() { + // PRAGMA: This example is used on gocloud.dev; PRAGMA comments adjust how it is shown and can be ignored. + // PRAGMA: On gocloud.dev, add a blank import: _ "gocloud.dev/pubsub/natspubsub" + // PRAGMA: On gocloud.dev, hide lines until the next blank line. + ctx := context.Background() + + // pubsub.OpenTopic creates a *pubsub.Topic from a URL. + // This URL will Dial the NATS server at the URL in the environment variable + // NATS_SERVER_URL and send messages with subject "example.mysubject". + // This URL will be parsed and the natsv2 attribute will be used to + // use NATS v2.2.0+ native message headers as the message metadata. + topic, err := pubsub.OpenTopic(ctx, "nats://example.mysubject?natsv2") + if err != nil { + log.Fatal(err) + } + defer topic.Shutdown(ctx) +} + +func Example_openSubscriptionV2FromURL() { + // PRAGMA: This example is used on gocloud.dev; PRAGMA comments adjust how it is shown and can be ignored. + // PRAGMA: On gocloud.dev, add a blank import: _ "gocloud.dev/pubsub/natspubsub" + // PRAGMA: On gocloud.dev, hide lines until the next blank line. + ctx := context.Background() + + // pubsub.OpenSubscription creates a *pubsub.Subscription from a URL. + // This URL will Dial the NATS server at the URL in the environment variable + // NATS_SERVER_URL and receive messages with subject "example.mysubject". + // This URL will be parsed and the natsv2 attribute will be used to + // use NATS v2.2.0+ native message headers as the message metadata. + subscription, err := pubsub.OpenSubscription(ctx, "nats://example.mysubject?natsv2") + if err != nil { + log.Fatal(err) + } + defer subscription.Shutdown(ctx) +}