Skip to content

Commit 0de2ad4

Browse files
authored
pubsub: api redesign (#2380)
1 parent f243e26 commit 0de2ad4

22 files changed

+6173
-3331
lines changed

README.md

Lines changed: 52 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ This client supports the following Google Cloud Platform services at a [General
1919
This client supports the following Google Cloud Platform services at a [Beta](#versioning) quality level:
2020

2121
* [Cloud Natural Language](#cloud-natural-language-beta) (Beta)
22+
* [Cloud Pub/Sub](#cloud-pubsub-alpha) (Beta)
2223
* [Cloud Spanner](#cloud-spanner-beta) (Beta)
2324
* [Cloud Vision](#cloud-vision-beta) (Beta)
2425
* [Google BigQuery](#google-bigquery-beta) (Beta)
@@ -28,7 +29,6 @@ This client supports the following Google Cloud Platform services at an [Alpha](
2829

2930
* [Cloud Bigtable](#cloud-bigtable-alpha) (Alpha)
3031
* [Cloud DNS](#cloud-dns-alpha) (Alpha)
31-
* [Cloud Pub/Sub](#cloud-pubsub-alpha) (Alpha)
3232
* [Cloud Resource Manager](#cloud-resource-manager-alpha) (Alpha)
3333
* [Cloud Speech](#cloud-speech-alpha) (Alpha)
3434
* [Google Compute Engine](#google-compute-engine-alpha) (Alpha)
@@ -450,6 +450,57 @@ languageClient.analyzeSentiment({document: document}).then(function(responses) {
450450
```
451451

452452

453+
## Cloud Pub/Sub (Beta)
454+
455+
- [API Documentation][gcloud-pubsub-docs]
456+
- [Official Documentation][cloud-pubsub-docs]
457+
458+
#### Using the Cloud Pub/Sub API module
459+
460+
```
461+
$ npm install --save @google-cloud/pubsub
462+
```
463+
464+
```js
465+
var pubsub = require('@google-cloud/pubsub');
466+
```
467+
468+
#### Authentication
469+
470+
See [Authentication](#authentication).
471+
472+
#### Preview
473+
474+
```js
475+
var pubsubClient = pubsub({
476+
projectId: 'grape-spaceship-123',
477+
keyFilename: '/path/to/keyfile.json'
478+
});
479+
480+
// Reference a topic that has been previously created.
481+
var topic = pubsubClient.topic('my-topic');
482+
483+
// Publish a message to the topic.
484+
var publisher = topic.publisher();
485+
var message = new Buffer('New message!');
486+
487+
publisher.publish(message, function(err, messageId) {});
488+
489+
// Subscribe to the topic.
490+
topic.createSubscription('subscription-name', function(err, subscription) {
491+
// Register listeners to start pulling for messages.
492+
function onError(err) {}
493+
function onMessage(message) {}
494+
subscription.on('error', onError);
495+
subscription.on('message', onMessage);
496+
497+
// Remove listeners to stop pulling for messages.
498+
subscription.removeListener('message', onMessage);
499+
subscription.removeListener('error', onError);
500+
});
501+
```
502+
503+
453504
## Cloud Spanner (Beta)
454505

455506
- [API Documentation][gcloud-spanner-docs]
@@ -816,54 +867,6 @@ zone.export('/zonefile.zone', function(err) {});
816867
```
817868

818869

819-
## Cloud Pub/Sub (Alpha)
820-
821-
- [API Documentation][gcloud-pubsub-docs]
822-
- [Official Documentation][cloud-pubsub-docs]
823-
824-
#### Using the Cloud Pub/Sub API module
825-
826-
```
827-
$ npm install --save @google-cloud/pubsub
828-
```
829-
830-
```js
831-
var pubsub = require('@google-cloud/pubsub');
832-
```
833-
834-
#### Authentication
835-
836-
See [Authentication](#authentication).
837-
838-
#### Preview
839-
840-
```js
841-
var pubsubClient = pubsub({
842-
projectId: 'grape-spaceship-123',
843-
keyFilename: '/path/to/keyfile.json'
844-
});
845-
846-
// Reference a topic that has been previously created.
847-
var topic = pubsubClient.topic('my-topic');
848-
849-
// Publish a message to the topic.
850-
topic.publish('New message!', function(err) {});
851-
852-
// Subscribe to the topic.
853-
topic.subscribe('subscription-name', function(err, subscription) {
854-
// Register listeners to start pulling for messages.
855-
function onError(err) {}
856-
function onMessage(message) {}
857-
subscription.on('error', onError);
858-
subscription.on('message', onMessage);
859-
860-
// Remove listeners to stop pulling for messages.
861-
subscription.removeListener('message', onMessage);
862-
subscription.removeListener('error', onError);
863-
});
864-
```
865-
866-
867870
## Cloud Resource Manager (Alpha)
868871

869872
- [API Documentation][gcloud-resource-docs]

packages/pubsub/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# @google-cloud/pubsub ([Alpha][versioning])
1+
# @google-cloud/pubsub ([Beta][versioning])
22
> Cloud Pub/Sub Client Library for Node.js
33
44
*Looking for more Google APIs than just Pub/Sub? You might want to check out [`google-cloud`][google-cloud].*
@@ -20,10 +20,13 @@ var pubsub = require('@google-cloud/pubsub')({
2020
var topic = pubsub.topic('my-topic');
2121

2222
// Publish a message to the topic.
23-
topic.publish('New message!', function(err) {});
23+
var publisher = topic.publisher();
24+
var message = new Buffer('New message!');
25+
26+
publisher.publish(message, function(err, messageId) {});
2427

2528
// Subscribe to the topic.
26-
topic.subscribe('subscription-name', function(err, subscription) {
29+
topic.createSubscription('subscription-name', function(err, subscription) {
2730
// Register listeners to start pulling for messages.
2831
function onError(err) {}
2932
function onMessage(message) {}
@@ -36,7 +39,7 @@ topic.subscribe('subscription-name', function(err, subscription) {
3639
});
3740

3841
// Promises are also supported by omitting callbacks.
39-
topic.publish('New message!').then(function(data) {
42+
publisher.publish(message).then(function(data) {
4043
var messageIds = data[0];
4144
});
4245

packages/pubsub/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@
5454
"@google-cloud/common": "^0.13.0",
5555
"@google-cloud/common-grpc": "^0.4.0",
5656
"arrify": "^1.0.0",
57+
"async-each": "^1.0.1",
5758
"extend": "^3.0.0",
59+
"google-auto-auth": "^0.7.1",
5860
"google-gax": "^0.13.0",
5961
"google-proto-files": "^0.12.0",
6062
"is": "^3.0.1",
61-
"modelo": "^4.2.0",
62-
"propprop": "^0.3.0",
6363
"uuid": "^3.0.1"
6464
},
6565
"devDependencies": {

0 commit comments

Comments
 (0)