Как визуализировать REST API микросервисов на HTML-странице? - PullRequest
0 голосов
/ 24 декабря 2018

Это очень общий вопрос, и я не ожидаю кода ответа (пример был бы хорош), но ссылка или тема для чтения.

У меня есть код Python для REST API для микросервисов (с использованием Tornado)) и я хочу сделать пользовательский интерфейс более дружелюбным.

например, я получил 3 файла:

book.py:

class Book:
    def __init__(self):
        self.books = []

    def add_book(self, title, author):
        new_book = {}
        new_book["Title"] = title
        new_book["Author"] = author
        self.books.append(new_book)
        print("Book: {0}".format(new_book))
        return json.dumps(new_book)

    def get_all_books(self):
        return self.books

    def json_list(self):
        return json.dumps(self.books)

api.py:

books = Book()

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Book Microservice v1")

def make_app():
    return tornado.web.Application([
        (r"/v1", MainHandler),
        (r"/v1/addbook", AddHandler, dict(books = books)),
        (r"/v1/getbooks", GetHandler, dict(books = books)),
        ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

addhandler.py:

class AddHandler(tornado.web.RequestHandler):
    def initialize(self, books):
        self.books = books

    def get(self):
        title = self.get_argument('title')
        author = self.get_argument('author')
        result = self.books.add_book(title, author)
        self.write(result)

Когда я хочу добавить книгу, я набираю:

http://127.0.0.1:8888/v1/addbook?title="Harry Potter"&author="J.K Rowling"

Чтобы отобразить все книги, которые я набираю:

http://127.0.0.1:8888/v1/addbook

Как мне сделать его более дружелюбным?Я имею в виду, что пользователь войдет на сайт и нажмет на кнопку «Добавить книгу» и будет доставлен на страницу с текстовыми полями для имени автора.И список книг вместо текущего вывода:

[{"Title": "\"How to Make a Million Dollars Blogging\"", "Author": "\"Bill Ward\""}, {"Title": "\"Harry Potter\"", "Author": "\"J.K Rowling\""}]

* код от здесь от Билл Уорд

1 Ответ

0 голосов
/ 25 декабря 2018

Похоже, что то, что вы ищете здесь, может быть шаблонами.

Вот документация Tornado по шаблонам

Дайте мне знать, если это поможет, или еслиесть что-то еще, что я могу помочь

...