예제 #1
0
from concurrent import futures
import random
import grpc

from recommendations_pb2 import (
    BookCategory,
    BookRecommendation,
    RecommendationResponse,
)

import recommendations_pb2_grpc

books_by_category = {
    BookCategory.MYSTERY: [
        BookRecommendation(id=1, title="The Maltese Falcon"),
        BookRecommendation(id=2, title="Murder on the Orient Express"),
        BookRecommendation(id=3, title="The Hound of the Baskervilles"),
    ],
    BookCategory.SCIENCE_FICTION: [
        BookRecommendation(id=4, title="The Hitchhiker's Guide to the Galaxy"),
        BookRecommendation(id=5, title="Ender's Game"),
        BookRecommendation(id=6, title="The Dune Chronicles"),
    ],
    BookCategory.SELF_HELP: [
        BookRecommendation(id=7,
                           title="The 7 Habits of Highly Effective People"),
        BookRecommendation(id=8,
                           title="How to Win Friends and Influence People"),
        BookRecommendation(id=9, title="Man's Search for Meaning"),
    ],
예제 #2
0
import random
from concurrent import futures
from signal import SIGTERM, signal

import grpc
from grpc_interceptor import ExceptionToStatusInterceptor
from grpc_interceptor.exceptions import NotFound
from recommendations_pb2 import BookCategory, BookRecommendation, RecommendationResponse
from recommendations_pb2_grpc import (
    RecommendationsServicer,
    add_RecommendationsServicer_to_server,
)

all_books_by_category = {
    BookCategory.MYSTERY: [
        BookRecommendation(id=1, title="The Maltese Falcon"),
        BookRecommendation(id=2, title="Murder on the Orient Express"),
        BookRecommendation(id=3, title="The Hound of the Baskervilles"),
    ],
    BookCategory.SCIENCE_FICTION: [
        BookRecommendation(id=4, title="Away from the Galaxy"),
        BookRecommendation(id=5, title="Ender's Game"),
        BookRecommendation(id=6, title="The Dune Chronicles"),
    ],
    BookCategory.SELF_HELP: [
        BookRecommendation(id=7, title="Habbits of Effective People"),
        BookRecommendation(id=8, title="How to Win"),
        BookRecommendation(id=9, title="Become a Good Chef"),
    ],
}
예제 #3
0
import random

import grpc

from recommendations_pb2 import (
    BookCategory,
    BookRecommendation,
    RecommendationResponse,
)

import recommendations_pb2_grpc

#In a real recommendation microservice , the books would be stored in a database
books_by_category = {
    BookCategory.MYSTERY: [
        BookRecommendation(id=1, title="the Maltese Falcon"),
        BookRecommendation(id=2, title="Muder on the orient express"),
        BookRecommendation(id=3, title="The Hound of the Baskervilles"),
    ],
    BookCategory.SCIENCE_FICTION: [
        BookRecommendation(id=4, title="The Hitchhiker's Guide to the galaxy"),
        BookRecommendation(id=9, title="Man's search for meaning"),
    ],
}


class RecommendationService(recommendations_pb2_grpc.RecommendationsServicer):
    def Recommend(self, request, context):
        if request.category not in books_by_category:
            context.abort(grpc.StatusCode.NOT_FOUND, "Category not found")
from concurrent import futures
import random

import grpc

from recommendations_pb2 import (
        BookCategory,
        BookRecommendation,
        RecommendationResponse
        )
import recommendations_pb2_grpc

books_by_category = {
        BookCategory.MYSTERY: [
            BookRecommendation(id=1, title='The Maltese Falcon'),
            BookRecommendation(id=2, title='Murder on Orient Exp'),
            BookRecommendation(id=3, title='The Hound of Bask')
            ],
        BookCategory.SCIENCE_FICTION: [
            BookRecommendation(id=5, title="Ender's Game"),
            BookRecommendation(id=6, title='The Dune Chronicles'),
            BookRecommendation(id=4, title='Hitchhiker Guide')
            ],
        BookCategory.SELF_HELP: [
            BookRecommendation(id=7, title='The 7 Habits'),
            BookRecommendation(id=8, title='Win Friends'),
            BookRecommendation(id=9, title='Man search for meaning')
            ]
        }

예제 #5
0
from concurrent import futures
import random

import grpc

from recommendations_pb2 import (
    BookCategory,
    BookRecommendation,
    RecommendationResponse,
)
import recommendations_pb2_grpc

books_by_category = {
    BookCategory.MYSTERY: [
        BookRecommendation(id=1, title="The Maltese Falcon"),
        BookRecommendation(id=2, title="Murder on the Orient Express"),
        BookRecommendation(id=3, title="The Hound of the Baskervilles"),
    ],
}


class RecommendationService(recommendations_pb2_grpc.RecommendationsServicer):
    def Recommend(self, request, context):
        if request.category not in books_by_category:
            context.abort(grpc.StatusCode.NOT_FOUND, "Category not found")

        books_for_category = books_by_category[request.category]
        num_results = min(request.max_results, len(books_for_category))
        books_to_recommend = random.sample(books_for_category, num_results)

        return RecommendationResponse(recommendations=books_to_recommend)