Добавил:
выбрасываю тут свой мусор, надеюсь, что он кому-то может пригодится... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_WEB.docx
Скачиваний:
30
Добавлен:
03.12.2023
Размер:
391.51 Кб
Скачать

Билет 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&param2=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.

Соседние файлы в предмете Web технологии