Микросервисы - как я могу вызвать api в шаблоне django
Как я могу вызвать rest api в шаблоне django.Я хочу разработать микросервисы и только что подумал о вызове api в front end.Как я могу достичь этого.
Обычно, когда я работаю в монолите, я напрямую вызываю его из базы данных в html, но это не тот случай в микросервисной части.
Вам необходимо разделить логику ядра, чтобы вы могли вызывать из представления ту же логику, что и из API. Чтобы проиллюстрировать это на примере,
models.py
class MyModel(db.Model):
attr_1 = ...
attr_2 = ...
def add_x_y(self, x, y):
return x + y
Поскольку ваша логика живет в модели, которая является основой структуры MVT, то вы можете использовать определенную логику где угодно. например
api/views.py
def some_api_function():
x = 1
y = 3
result = {'result': MyModel.add_x_y(x,y)}
return json_response(result)
views.py
def some_template_function():
x = 1
y = 3
result = {'result': MyModel.add_x_y(x,y)}
return render_to_response(tempalate.html, {'result': result})
Когда вы отделяете свою логику на нижний уровень приложения, вы можете повторно использовать ее в представлении api, обычном представлении и любых других сервисных функциях.
Пожалуйста, не обращайте внимания на синтаксис, это просто для примера.
Если вы хотите вызывать Django API из вашего шаблона, то вы можете использовать AJAX. Вы можете взять ссылку из приведенного ниже кода и добавить ее в ваш HTML-шаблон
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$.ajax({
type: 'GET',
dataType:"json",
url: 'https//yourendpoint/api/',
success: function (data, status, xhr) {
console.log('data: ', data);
//your logic
}
});
</script>
Для получения более подробной информации вы можете ознакомиться с ссылкой. Вы можете реализовать его с помощью jquery или js.