- •Билет 1
- •Билет 2
- •Структура приложения¶
- •Модуль¶
- •Компонент¶
- •Сервис¶
- •Директива¶
- •Билет 3
- •Билет 4
- •Билет 5
- •Билет 6
- •Билет 7
- •Билет 8
- •Билет 9
- •Билет 10
- •Привязка к сеттеру
- •Билет 12
- •Билет 13
- •Билет 14
- •Билет 15
- •Билет 16
- •Корневой уровень
- •Уровень модуля
- •Уровень компонента
- •Билет17 Не то
- •Билет 18
- •Билет 19
- •Билет 20
- •Билет 21
- •Билет 22
- •Билет 23
- •Билет 24
- •Заключение
- •Билет 25
- •Билет 26
- •Билет 27
- •Билет 28
- •Билет 29
- •Билет 30
Билет 21
Что такое REST API? Как он используется в Angular?
Дословно API расшифровываетсякак Application Programming Interface. Это набор правил, позволяющий программам «общаться» друг с другом. Разработчик создает API на сервере и позволяет клиентам обращаться к нему.
REST – это архитектурный подход, определяющий, как API должны выглядеть. Читается как «Representational State Transfer». Этому набору правил и следует разработчик при создании своего приложения. Одно из этих правил гласит, что при обращении к определенному адресу, вы должны получать определенный набор данных (ресурс).
REST API подразумевает под собой простые правила:
Каждый URL является ресурсом
При обращении к ресурсу методом GET возвращается описание этого ресурса
Метод POST добавляет новый ресурс
Метод PUT изменяет ресурс
Метод DELETE удаляет ресурс
Эти правила предоставляют простой CRUD интерфейс для других приложений, взаимодействие с которым происходит через протокол HTTP.
Соответствие CRUD операций и HTTP методов:
CREATE - POST
READ - GET
UPDATE - PUT
DELETE – DELETE
fromwsgiref.simple_serverimport make_server
frompyramid.viewimport view_config, view_defaults
frompyramid.configimport Configurator
@view_defaults(
route_name='rest_people',
renderer='json'
)
classRESTViewPeople(object):
def__init__(self, request):
self.request= request
@view_config(request_method='GET')
defget(self):
return {
'id': self.request.matchdict['id'],
'method': self.request.method,
'get': dict(self.request.GET)
}
@view_config(request_method='POST')
defpost(self):
return {
'id': self.request.matchdict['id'],
'method': self.request.method,
'post': dict(self.request.POST)
}
@view_config(request_method='DELETE')
defdelete(self):
return {'status': 'success'}
if__name__=='__main__':
config =Configurator()
config.add_route('rest_people', '/api/v1/people/{id:\d+}')
config.add_view(RESTViewPeople, route_name='rest_people')
config.scan('.')
# make wsgi app
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 8080, app)
server.serve_forever()
Пример выше добавляет View с тремя методами, каждый из которых вызывается при соответствующем GET, POST, DELETE запросе. Ресурсом здесь является конкретный человек, получить которого можно по URL http://localhost:8080/api/v1/people/123
Результатом запроса будет:
{"get":{},"id":"123","method":"GET"}
Для отправки POST запроса воспользуемся консольной утилитой curl:
$ curl -X POST -d 'param1=value1¶m2=value2' http://localhost:8080/api/v1/people/1
Результат запроса:
{"id":"1","post":{"param1":"value1","param2":"value2"},"method":"POST"}
DELETE запрос выполняется по аналогии:
$ curl -X DELETE http://localhost:8080/api/v1/people/1
Результат запроса:
{"status":"success"}
Билет 22
Для чего используется модель? Опишите принцип ее применения.
Модель — данные, представленные пользователю в представлении и с которым взаимодействует пользователь. Работа с моделью в AngularJS осуществляется с помощью директивы ng-model. Например в запись
1 |
<input type="text" ng-model="userName"/> |
связывает переменную userName с веденными в компонент input данными.
Пример использования модели.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<div ng-app> <h3>Пример связывание и использование модели AngularJS</h3> <div> <table> <tr> <td><b>Имя пользователя:</b></td> <td><input type="text" ng-model="userName"/></td> </tr> <tr> <td><b>Пароль:</b></td> <td><input type="text" ng-model="userPass"/></td> </tr> <tr> <td><b>Email:</b></td> <td><input type="text" ng-model="email"/></td> </tr> </table> </div>
<br /> Привет, {{userName}}! Это пример использования модели в AngularJS.<br /> Введенный пароль: {{ userPass }} <br /> Email: {{ email }} <br /> <br />А здесь то же самое, но через связывание: <br /> Имя<span style="color:red" ng-bind="userName"></span><br /> Пароль<span style="color:green" ng-bind="userPass"></span><br /> Почта<span style="color:blue" ng-bind="email"></span><br /> Обратите внимание, что если использовать конструкцию < span/> вместо < span>< / span>, то хром проглотит последующие после первого автозакрытого элемента элементы.
</div> |
В начале мы задаем область действия AngularJS с помощью ng-app (можно не указывать имя модуля). Так же мы не задаем никакого контроллера, как это было в прошлой статье. Далее следует связывание модели с введенными данными в компонентах ввода имени пользователя и пароля с помощью директивы ng-model.
Значения переменных userName, userPass, email выводятся на экран двумя способами. Либо с помощью использования выражений и конструкции {{userName}} или с помощью директивы ng-bind.