По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Использование REST API является полезной функцией для реализации ваших сценариев. Вы можете получить доступ к новым функциям, а также расширить возможности создания новых, более продвинутых сценариев. Опыт многих пользователей показывает, что, когда начинаешь использовать REST API в скриптах, то чувствуешь себя довольно неуклюже и непривычно. В этой заметке мы обсудим: Что такое REST API Как читать документацию Как использовать API REST с PowerShell Некоторые советы и подсказки, как облегчить и улучшить практику Что такое "REST"? REST, или RESTful API, это API, который использует HTTP запросы для получения, добавления, удаления или манипулирования данными в различных сервисах. Как правило, то, что нужно сделать с данными, решается тем, какой HTTP-метод вы используете. Вот краткий список методов HTTP и их применение в REST API: GET-Read POST-Create PATCH-Partial update/modify PUT-Update/replace DELETE-Remove Данные, которые возвращает API REST, обычно представляются в формате JSON. Теперь давайте начнём с нашего первого API запроса! Что такое API Работа с документацией Для использования различных API REST необходимо научиться читать и интерпретировать документацию. К счастью, если вы знаете, как читать один тип документации, вы сможете быстро научиться читать другие. В этой статье мы используем petstore.swagger.io, так как он использует популярный фреймворк Swagger, который довольно часто используется в разработке. На предыдущем рисунке показана наиболее важная информация о конечных точках REST API: HTTP-метод-GET/POST/DELETE и т.д. URL-адрес, связанный с конечной точкой REST API (Базовый URL, как правило, представлен в верхней части страницы документации) Краткое описание Подробности Первая страница документации просто замечательная, и, как правило, с помощью этой информации можно выполнить большинство запросов, требующих использования метода HTTP GET. Но такие методы, как POST и SET, обычно требуют, чтобы вы щелкнули и развернули строку, чтобы получить больше информации. Если вы нажмете на одну из строк, то получите информацию, которая выглядит так: Здесь мы представили конечную точку REST, которая может создать новый объект pet. Здесь указывается, как должен выглядеть JSON, предоставленный в теле POST, и какой тип контента он принимает. Другие конечные точки REST указывают, что это за параметры, каким типом данных они должны быть и т.д. Это основы для чтения документации. Теперь, когда общие принцип более-менее ясны, пора начать использовать REST API с PowerShell. Получение первых данных (GET) Используя REST API с PowerShell обычно довольно просто, используется встроенные командлеты, таким образом, нет необходимости в дополнительных модулях. Мы собираемся извлечь данные с помощью метода GET в конечной точке /pet/{ petId}. Если развернуть конечную точку /pet/{ petId} в документации, можно увидеть, что {petId} на самом деле является параметром, который принимает целое число. Это делает URL-адрес для выборки объекта pet с идентификатором 1: https://petstore.swagger.io/v2/pet/1 В документации SWAGGER REST API обычно отображается базовый URL-адрес в верхней части страницы. Теперь начнем с PowerShell. Откройте окно терминала и введите: PS51 > Invoke-RestMethod -Method GET -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" id : 1 category : @{id=0; name=string} name : doggie photoUrls : {string} tags : {@{id=0; name=string}} status : available Поскольку в ответе от сервера возвращается тип содержимого "application/json" используется метод Invoke-RestMethod, который автоматически преобразует возвращаемый JSON в объект. Ошибка 404 Not found, как правило, означает, что объект не найден или URL-адрес введен неправильно. Итак, мы выполнили первый вызов REST API. Но возможности метода GET для получения данных довольно ограничены, так что давайте создадим что-нибудь с помощью метода POST. Создание объекта методом POST Метод POST чаще всего используется для создания, например, пользователей или записей и т.д. Запрос POST отправляет BODY, содержащий информацию, конечной точке REST, обычно в формате JSON, но он также может быть в виде формы с кодировкой URL. Вы узнаете, как создать объект JSON, который можно отправить в конечную точку/pet. Можно увидеть, как должен выглядеть JSON, если развернуть строку POST/pet в документации. Начнем с создания хэштаблицы, который можно преобразовать в объект JSON. Raw JSON следует избегать в скриптах PowerShell, поскольку он ограничивает его возможности. $Body = @{ id = 19 category = @{ id = 45 name = "Whatever" } name = "Dawg" photoUrls = @( "string" ) tags = @( @{ id = 0 name = "string" } ) status = "available" } Если вам трудно создать хештаблицу, который преобразуется в нужный JSON, установите модуль PsdKit и используйте команду $ JsonString | ThreadTo-Psd Теперь имеется хэш-таблица, которую можно преобразовать в строку JSON и POST в конечную точку/pet: $JsonBody = $Body | ConvertTo-Json $Uri = "https://petstore.swagger.io/v2/pet" Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method Post -Body $JsonBody id : 19 category : @{id=45; name=Whatever} name : Dawg photoUrls : {string} tags : {@{id=0; name=string}} status : available При создании объекта он обычно получает созданный для подтверждения объект. Использование DELETE. Метод DELETE используется для удаления данных, а применение очень схоже с методом GET. PS51 > Invoke-RestMethod -Method DELETE -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" Только убедитесь, что не удалите ничего важного Использование PUT Метод PUT используется для обновления данных. Это делается аналогично методу POST путем представления полного или частичного объекта JSON: PS51> $Body = [PSCustomObject]@{ id = 19 name = "Dawg with a new name" } PS51> $JsonBody = $Body | ConvertTo-Json PS51> $Uri = "https://petstore.swagger.io/v2/pet" PS51> Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method PUT -Body $JsonBody id name photoUrls tags -- ---- --------- ---- 19 Dawg with a new name {} {} Обычно API REST возвращает объект JSON с использованными и/или обновленными данными. Можно увидеть, что объект был обновлен с помощью метода GET: PS 51> Invoke-RestMethod -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/19" id : 19 category : @{id=45; name=Whatever} name : Dawg with a new name photoUrls : {string} tags : {@{id=0; name=string}} status : available Создание функций Писать эти команды каждый раз вручную может стать довольно утомительным и на самом деле не масштабируемым. Если мы вызываем конечную точку несколько раз, то лучше создать для нее функцию. Это довольно просто и нужно написать всего несколько строк: Function Get-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipeline)] [int]$Id ) Begin{} Process{ $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/$Id" ContentType = "application/json" Method = "GET" } Invoke-RestMethod @RestMethodParams } End{} } После создания функции ее можно вызвать в сценарии: PS51> Get-PetstorePet -Id 1 id name photoUrls tags -- ---- --------- ---- 1 Doggie {http://picture.url} {} Это можно сделать и для метода POST для создания нового объекта pet в Petstore: Function Add-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$Id, # Name of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Name, # Status of the pet (available, sold etc) [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Status, # Id of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$CategoryId, # Name of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$CategoryName, # URLs to photos of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string[]]$PhotoUrls, # Tags of the pets as hashtable array: @{Id=1;Name="Dog"} [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [Hashtable[]]$Tags ) Begin{} Process{ $Body = @{ id = $Id category = @{ id = $CategoryId name = $CategoryName } name = $Name photoUrls = $PhotoUrls tags = $Tags status = $Status } $BodyJson = $Body | ConvertTo-Json $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/" ContentType = "application/json" Method = "Post" Body = $BodyJson } Invoke-RestMethod @RestMethodParams } End{} } И вызов этой функции PowerShell намного упрощает задачу: PS51> $AddPetStorePetsParams = @{ Id = 44 Name = "Birdie" Status = "available" CategoryId = 50 CategoryName = "Hawks" PhotoUrls = "https://images.contoso.com/hawk.jpg" Tags = @( @{ Id=10 Name="Not eagles" } ) } PS51> Add-PetStorePet @AddPetStorePetsParams id : 44 category : @{id=50; name=Hawks} name : Birdie photoUrls : {https://images.domain.com/hawk.jpg} tags : {@{id=0}} status : available Возможно, что многие модули, которые вы ежедневно используете, состоят из функций, который за кулисами используют REST API. Заключение Обучение работы с REST API, главным образом основано на чтении документации. Мы использовали документацию на основе SWAGGER в этом посте, так как она представляет, как могут выглядеть другие стили документации. Кроме того, преобразование вызовов API в функцию может сэкономить много времени, упростить работу и очистить сценарии.
img
IP-АТС Yeastar поддерживают автоматическую настройку различных моделей конечного IP-оборудования от различных производителей. После недавнего обновления в приложение auto-provisioning была добавлена поддержка Gigaset DECT IP PRO. Поддерживаемое оборудование Gigaset: DECT базы Gigaset: Gigaset N870 IP PRO Gigaset N670 IP PRO Телефоны Gigaset: Gigaset Maxwell C Gigaset S650H Pro Gigaset SL750H Pro Gigaset R650H Pro $dbName_ecom = "to-www_ecom"; $GoodID = "5019000350"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName_ecom) or die(mysql_error()); $query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';"; $res_ecom=mysql_query($query_ecom) or die(mysql_error()); $row_ecom = mysql_fetch_array($res_ecom); echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧 Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽'; $dbName = "to-www_02"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); Для автоматической настройки Gigaset DECT IP PRO необходимо убедиться, что оборудование соответствует минимальным требованиям: прошивка не ниже 30.12.0.9 для IP АТС Yeastar серии S версия приложения auto-provisioning не ниже 1.8.22 версия DECT баз Nx70 серии не ниже 2.29.0 Шаг 1. Сбросить DECT базу Gigaset до заводских настроек Шаг 2. Дождаться появления базы Gigaset в панели приложения auto-provisioning Во время загрузки DECT база Gigaset рассылает мультикаст SIP сообщение. Это сообщение подхватывает IP АТС Yeastar серии S и база появляется в окне приложения. Шаг 3. Откройте параметры базы и настройте так, как это Вам необходимо Шаг 4. Перезагрузите DECT базу Gigaset После настройки нажмите Сохранить. Появится запрос на перезагрузку DECT базы Gigaset. Необходимо вручную или через web-интерфейс DECT базы Gigaset перезагрузить её. Сделать это необходимо только в первый раз. В дальнейшем, не смотря на запросы на перезагрузку со стороны IP АТС Yeastar, DECT базу Gigaset IP PRO перезагружать нет необходимости. Все настройки будут успешно применяться без перезагрузки. Поддерживаемый функционал, который можно настроить с помощью автоматической настройки: N670 до 20 телефонов N870 до 50 телефонов Телефонная книга LDAP Ожидание вызова Голосовая почта Язык Пароль администратора Тональная схема Часовой пояс Сервер NTP Кодеки Настройка трубок/аккаунтов: Вы можете настроить свои телефоны, выбрав трубку, номер и указав LDAP. Чтобы зарегистрировать трубку, Вам необходимо открыть веб-интерфейс DECT базы Gigaset и начать регистрацию. Характеристики На данной вкладке можно включить/выключить ожидание вызова, голосовую почту и настроить удаленную телефонную книгу. Настройки На вкладке Предпочтения Вы можете настроить язык, указать пароль администратора, выбрать схему тонов, указать временную зону и сервер NTP. Пароль администратора: в этом поле настройте свой пароль администратора. Если поле пустое, то Ваш пароль, введенный во время установки Nx70, не будет перезаписан. Настройка кодеков На вкладке Кодек Вы можете настроить используемые кодеки. Примечание: Если отключить кодек G.729, то DECT база Gigaset сможет работать с 10 одновременными вызовами, вместо 8. Настройка профилей LDAP На вкладке LDAP Вы можете настроить до 10 профилей LDAP сервера. Доступные для настройки параметры: Directory name: название телефонной книги, которое будет отображаться на телефонных трубках Server Address: IP адрес сервера LDAP (например, IP АТС Yeastar серии S) Server Port: порт сервера LDAP (например, 389) LDAP Search base (Base DN): dc=pbx, dc=com Username: cn=admin, dc=pbx, dc=com Password: пароль Для включения указанной настройки LDAP, необходимо установить галочку Enable directory.
img
Сетевые устройства могут работать в режимах, которые подразделяются на три большие категории. Первая и основная категория- это передача данных (плоскость данных, data plane). Это режим работы коммутатора по передаче кадров, генерируемых устройствами, подключенными к коммутатору. Другими словами, передача данных является основным режимом работы коммутатора. Во-вторых, управление передачей данных относится к настройкам и процессам, которые управляют и изменяют выбор, сделанный передающим уровнем коммутатора. Системный администратор может контролировать, какие интерфейсы включены и отключены, какие порты работают с какой скоростью, как связующее дерево блокирует некоторые порты, чтобы предотвратить циклы, и так далее. Так же важной частью этой статьи является управление устройством, осуществляемое через плоскость наблюдения (management plane). Плоскость наблюдения - это управление самим устройством, а не управление тем, что делает устройство. В частности, в этой статье рассматриваются самые основные функции управления, которые могут быть настроены в коммутаторе Cisco. В первом разделе статьи рассматривается настройки различных видов безопасности входа в систему. Во втором разделе показано, как настроить параметры IPv4 на коммутаторе, чтобы им можно было управлять удаленно. В последнем разделе рассматриваются практические вопросов, которые могут немного облегчить жизнь системного администратора. Защита коммутатора через CLI По умолчанию коммутатор Cisco Catalyst позволяет любому пользователю подключиться к консольному порту, получить доступ к пользовательскому режиму, а затем перейти в привилегированный режим без какой-либо защиты. Эти настройки заданы в сетевых устройствах Cisco по умолчанию и, если у вас есть физический доступ к устройству, то вы спокойно можете подключиться к устройству через консольный порт или USB, используя соответствующий кабель и соответственно производить различные настройки. Однако не всегда имеется физический доступ к коммутатору и тогда необходимо иметь доступ к устройствам для удаленного управления, и первым шагом в этом процессе является обеспечение безопасности коммутатора так, чтобы только соответствующие пользователи могли получить доступ к интерфейсу командной строки коммутатора (CLI). Настройка парольного доступа к коммутатору Cisco В данной части рассматривается настройка безопасности входа для коммутатора Cisco Catalyst. Защита CLI включает защиту доступа в привилегированный режим, поскольку из этого режима злоумышленник может перезагрузить коммутатор или изменить конфигурацию. Защита пользовательского режима также важна, поскольку злоумышленники могут видеть настройки коммутатора, получить настройки сети и находить новые способы атаки на сеть. Особенно важно, что бы все протоколы удаленного доступа и управления, чтобы IP-настройки коммутатора были настроены и работали. Для того чтобы получить удаленный доступ по протоколам Telnet и Secure Shell (SSH) к коммутатору, необходимо на коммутаторе настроить IP-адресацию. Чуть позже будет показано, как настроить IPv4-адресацию на коммутаторе. В первой части статьи будут рассмотрены следующие вопросы защиты входа: Защита пользовательского режима и привилегированного режима с помощью простых паролей; Защита доступа в пользовательский режим с использованием локальной базы данных; Защита доступа в пользовательский режим с помощью внешних серверов аутентификации; Защита удаленного доступа с помощью Secure Shell (SSH); Защита пользовательского и привилегированного режима с помощью простых паролей. Получить полный доступ к коммутатору Cisco можно только через консольный порт. В этом случае, настройки по умолчанию, позволяют получить доступ сначала к режиму пользователя, а затем можно перейти в привилегированный режим без использования паролей. А вот по протоколам удаленного доступа Telnet или SSH получить доступ даже к режиму пользователя невозможно. Настройки по умолчанию идут у совершенно нового коммутатора, но в производственной среде необходимо обеспечить безопасный доступ через консоль, а также включить удаленный вход через Telnet и/или SSH, чтобы была возможность подключаться ко всем коммутаторам в локальной сети. Можно организовать доступ к сетевому оборудованию с использованием одного общего пароля. Этот метод позволяет подключиться к оборудованию, используя только пароль - без ввода имени пользователя - с одним паролем для входа через консольный порт и другим паролем для входа по протоколу Telnet. Пользователи, подключающиеся через консольный порт, должны ввести пароль консоли, который был предварительно настроен в режиме конфигурации. Пользователи, подключающиеся через протокол Telnet, должны ввести пароль от Telnet, также называемый паролем vty, так называемый, потому что это режим конфигурации терминальных линий (vty). На рисунке 1 представлены варианты использования паролей с точки зрения пользователя, подключающегося к коммутатору. Как видно из рисунка 1, на коммутаторах Cisco стоит защита привилегированного режима (enable) с помощью еще одного общего пароля, задаваемый командой enable password. Системный администратор, подключающийся к CLI коммутатора попадает в режим пользователя и далее, вводит команду enable. Эта команда запрашивает у пользователя пароль входа в привилегированный режим; если пользователь вводит правильный пароль, IOS перемещает пользователя в привилегированный режим. Пример 1. Пример входа в коммутатор из консоли, когда пароль консоли и пароль привилегированного режима были заранее установлены. Предварительно пользователь запустил эмулятор терминала, физически подключил ноутбук к консольному кабелю, а затем нажал клавишу Enter, чтобы войти в коммутатор. (User now presses enter now to start the process. This line of text does not appear.) User Access Verification Password: cisco Switch> enable Password: cisco Switch# В примере показаны пароли в открытом виде, как если бы они были набраны в обычном текстовом редакторе (cisco), а также команда enable, которая перемещает пользователя из пользовательского режима в привилегированный режим (enable). В реальности же IOS скрывает пароли при вводе, чтобы никто не смог увидеть их. Чтобы настроить общие пароли для консоли, Telnet и привилегированного режима (enable), необходимо ввести несколько команд. На рис. 2 показан порядок задания всех трех паролей. На рисунке 2 показаны два ПК, пытающиеся получить доступ к режиму управления устройством. Один из ПК подключен посредством консольного кабеля, соединяющейся через линию console 0, а другой посредством Telnet, соединяющейся через терминальную линию vty 0 15. Оба компьютера не имеют Логинов, пароль для консоли и Telnet -cisco. Пользовательский режим получает доступ к привилегированному режиму (enable) с помощью ввода команды "enable secret cisco". Для настройки этих паролей не надо прилагать много усилий. Все делается легко. Во-первых, конфигурация консоли и пароля vty устанавливает пароль на основе контекста: для консоли (строка con 0) и для линий vty для пароля Telnet (строка vty 0 15). Затем в режиме консоли и режиме vty, соответственно вводим команды: login password <пароль задаваемый пользователем> Настроенный пароль привилегированного режима, показанный в правой части рисунка, применяется ко всем пользователям, независимо от того, подключаются ли они к пользовательскому режиму через консоль, Telnet или иным образом. Команда для настройки enable password является командой глобальной конфигурации: enable secret <пароль пользователя>. В старых версиях, для задания пароля на привилегированный режим, использовалась команда password. В современных IOS применяется два режима задания пароля: password и secret. Рекомендуется использовать команду secret, так как она наиболее безопасна по сравнению с password. Для правильной настройки защиты коммутатора Cisco паролями необходимо следовать по шагам, указанным ниже: Шаг 1. Задайте пароль на привилегированный режим командой enable secret password-value Шаг 2. Задайте пароль на доступ по консоли Используйте команду line con 0 для входа режим конфигурирования консоли; Используйте команду liassword liassword-value для задания пароля на консольный режим; Используйте команду login для запроса пароля при входе по консоли; Шаг 3. Задайте пароль на терминальные подключения vty (Telnet) Используйте команду line vty 0 15 для входа режим конфигурирования терминальных линий. В данном примере настройки будут применены ко всем 16 терминальным линиям; Используйте команду liassword liassword-value для задания пароля на режим vty; Используйте команду login для запроса пароля при входе по Telnet В Примере 2 показан процесс настройки, согласно вышеописанным шагам, а также установка пароля enable secret. Строки, которые начинаются с ! - это строки комментариев. Они предназначены для комментирования назначения команд. ! Enter global configuration mode, set the enable password, and also set the hostname (just because it makes sense to do so) Switch# configure terminal Switch(config)# enable secret cisco Switch#(config)# line console 0 Switch#(config-line)# password cisco Switch#(config-line)# login Switch#(config-line)# exit Switch#(config)# line vty 0 15 Switch#(config-line)# password cisco Switch#(config-line)# login Switch#(config-line)# end Switch# Пример 3 показывает результирующую конфигурацию в коммутаторе, выводимой командой show running-config. Выделенный текст показывает новую конфигурацию. Часть листинга было удалено, что бы сконцентрировать ваше внимание на настройке пароля. Switch# show running-config ! Building configuration... Current configuration: 1333 bytes ! version 12.2 ! enable secret 5 $1$OwtI$A58c2XgqWyDNeDnv51mNR. ! interface FastEthernet0/1 ! interface FastEthernet0/2 ! ! Several lines have been omitted here - in particular, lines for ! FastEthernet interfaces 0/3 through 0/23. ! interface FastEthernet0/24 ! interface GigabitEthernet0/1 ! interface GigabitEthernet0/2 ! line con 0 password cisco login ! line vty 0 4 password cisco login ! line vty 5 15 password cisco login В следующей статье рассмотрим тему защиты доступа в пользовательском режиме с помощью локальных имен пользователей и паролей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59