Вначале мы сделали проект с использованием CodeIgniter, и у нас было несколько контроллеров, которые использовались для подключения внешнего NAS к базе данных через его веб-интерфейс, для краткого рассказа у нас была куча URL, для которой требовался ключ APIиметь доступ, чтобы избежать общих хакерских атак из внешних источников, вызывающих API.
API существовал для различных задач, которые должен был выполнять NAS (управление заказами, загрузка данных / изображений и т. д.), поэтому у нас было несколько различных контроллеров(т. е. один для заказов, изображений и т. д.) Папка API выглядела примерно так:
controllers/apiv1/
orders.php
images.php
...
Что-то вроде этого:
class Orders extends ApiController {
function Orders()
{
parent::ApiController();
}
function get_paid()
{
$shop = self::get_shop();
$this->load->model('order');
echo json_encode($this->order->by_status($shop->shop_id, Order::STATUS_PAID));
}
}
ГдеApiController только что проверил APIKey по отношению к магазину, к которому он пытался получить доступ.
Теперь мы переносим проект в Django, и я просто хотел узнать, как снова настроить этот API.Я думал о создании приложения API для проекта и импорте моделей в views.py и создании некоторых функций для всего, моя проблема здесь в том, чтобы найти способ красиво все разбить (на отдельные файлы для каждой из разных вещей).)?Или я должен просто набрать views.py
всего и беспокоиться об этом в URL.
Или есть лучший способ?Если возможно, я бы хотел разделить api на версии вроде (api / v1, api / v2 и т. Д.), Чтобы мы могли просто перенаправлять URL-адреса на новый api, не затрагивая старый.Это может пригодиться, если у нас разные NAS используют разные версии API (сложно объяснить почему ...)