0

Я собираюсь написать некоторый клиент HTTP (REST) ​​в Python. Это будет инструмент интерфейса командной строки без gui. Я не буду использовать объекты бизнес-логики, никакой базы данных, просто используя API для связи с сервером (используя Curl). Не могли бы вы порекомендовать мне некоторые архитектурные шаблоны для этого, кроме Model View Controller?Архитектурный шаблон для инструмента CLI

Примечание: Я не прошу шаблонов проектирования, таких как Command или Strategy. Я просто хочу знать, как отделить и отделить слои абстракции.

Я думаю, что использование MVC бессмысленно относительно факта отсутствия бизнес-логики - пожалуйста, исправьте меня, если я ошибаюсь. Пожалуйста, дайте мне ваши предложения!

Знаете ли вы какие-либо примеры проектов CLI (на любом языке, не обязательно в Python), которые содержатся в хорошем состоянии и с чистым кодом?

Приветствие

ответ

0

Поскольку ваше приложение не является очень сложным, я вижу 2 слоя здесь:

  • ServerClient: он обеспечивает API для удаленных вызовов и скрывает любые детали. Он знает, как получить доступ к HTTP-серверу, предоставить auth, обработать ошибки и т. Д. Он имеет методы, такие как do_something_good(), которые любой может вызвать и не заботится о том, удалён или нет.

  • CommandLine: он использует optparse (или argparse) для реализации CLI, она может поддерживать историю и т.д. Этот слой использует ServerClient для доступа к удаленной службе.

Оба уровня ничего не знают друг о друге (только протокол, подобный списку известных методов). Это позволит вам использовать somethign вместо HTTP Rest, и CLI все равно будет работать. Или вы можете изменить CLI с пакетными файлами, и HTTP должен работать.