Лабораторная работа №5 Yandex API

 

  Главная      Книги - Разные 

 

поиск по сайту            правообладателям  

    

 

   

 

   

 

 

 

 

 

Лабораторная работа №5 Yandex API

 

 

Лабораторная работа №5
Yandex API
Цель:
Современные поисковые системы предоставляют богатый набор API-функций,
реализуемых на базе протокола http. Например, ниже представлен список Yandex API,
которые на текущий момент доступны пользователю.
API Яндекс.Карт
API Яндекс.Директа
«Поделиться» в соцсетях
Используйте карты Яндекса
Разрабатывайте приложения
Добавьте на сайт или в блог
на своем сайте, создавайте
для управления рекламными
кнопки
для
быстрой
собственные карты, схемы
кампаниями,
контроля
публикации ссылок на ваш
проезда,
бюджета,
получения
контент.
геоинформационные
отчетов.
сервисы.
Yandex Map Kit
API Яндекс.Метрики
API Поиска по блогам
Встраивайте Яндекс.Карты в
Управляйте
счетчиками,
Организуйте
поиск
по
ваши
мобильные
анализируйте
поведение
своему
блогу,
приложения для платформ
пользователей
и
блогохостингу или форуму.
Android, iOS и Windows
эффективность рекламных
Создайте
собственный
Phone.
кампаний.
рейтинг
популярных
записей.
API Яндекс.Вебмастера
API Яндекс.Денег
API Яндекс.Диска
Создавайте приложения для
Организуйте
оплату
Храните
данные
и
работы с данными о сайтах
Яндекс.Деньгами на своем
настройки
ваших
из Яндекс.Вебмастера.
сайте или в приложении.
приложений
на
Яндекс.Диске и управляйте
ими, используя протокол
WebDAV.
Яндекс.XML
API Яндекс.Маркета
API
Яндекс.Почты
для
Отправляйте запросы к
Используйте
данные
доменов
поисковой базе Яндекса и
Яндекс.Маркета на своем
Подключите ваш домен к
получайте ответы в формате
сайте и автоматизируйте
Яндекс.Почте для доменов и
XML.
управление ставками.
используйте
широкие
возможности Яндекс.Почты.
API Яндекс.Фоток
API Яндекс.Услуг
API Яндекс.Чистый Веб
Создавайте приложения для
Предложите
вашим
API
предоставляет
загрузки и редактирования
пользователям возможность
интерфейс
к
фильтрам
фотографий, следите за
подбора наиболее выгодных
Спамообороны Яндекса.
обновлениями в альбомах
вкладов и кредитов.
пользователей.
API Яндекс.Бара
Яндекс.Детектор
API Яндекс.Подписок
Создайте свой компонент
Определяйте
модель
Создавайте приложения для
для панели Яндекс.Бара и
мобильного устройства по
чтения и работы с RSS-
предложите его миллионам
заголовкам HTTP-запросов
потоками.
пользователей.
браузера.
Виджетная платформа
Яндекс.Локатор
API Моего Круга
Создавайте виджеты для
Определяйте
Используйте возможности
главной страницы Яндекса и
местоположение
МоегоКруга на вашем сайте
предлагайте
их
мобильного устройства по
и создавайте на их основе
пользователям.
сигналам сетей сотовой
свои приложения.
связи и точек доступа Wi-Fi.
Яндекс.Спеллер
Safe Browsing API
API Я.ру
Используйте
проверку
Проверяйте
ссылки
и
Создавайте приложения для
орфографии
в
HTML-
страницы перед тем, как
чтения
ленты
друзей,
формах,
текстовых
показывать
их
своим
ведения блога и размещения
редакторах и CMS.
пользователям.
контента.
API Перевода
Rich Content API
Используйте
Формируйте
превью
автоматический
перевод
страниц с помощью данных
текстов от Яндекса.
из
контент-системы
Яндекс.Поиска.
Рассмотрим пример использования предлагаемых API. Познакомимся с функцией
перевода текстов, используя Yandex API.
Метод translate
Осуществляет перевод текста.
Описание
Translation translate(string lang, string text[], string format);
Страница для демонстрации работы метода: http://translate.yandex.net/api/v1/tr?op=translate
Входные параметры
Входные параметры могут передаваться либо с помощью HTTP GET-запроса, либо с
помощью HTTP POST-запроса, где параметры передаются в body HTTP-запроса.
Пример запроса:
XML-интерфейс:
ru&text=To+be,+or+not+to+be%3F&text=That+is+the+question.
JSON-интерфейс:
ru&text=To+be,+or+not+to+be%3F&text=That+is+the+question.
JSONP-интерфейс (для функции myCallback):
ru&text=To+be,+or+not+to+be%3F&text=That+is+the+question.&callback=myCallback
Ниже приводится полный список входных параметров.
Параметр
Тип
Описание
Обязательные
lang
string
Направление перевода (например, "en-ru" или "ru"). Задается в
виде:
1.
Пары кодов языков, перечисленных через дефис. Например,
"en-ru" задает перевод с английского на русский.
2.
Одиночного кода языка. Например, "ru" задает перевод на
русский язык. В этом случае язык исходного текста определяется
автоматически.
text
string[]
Текст, который требуется перевести.
Ограничения:
Для POST- запросов максимальный размер передаваемого
текста составляет 10000 символов.
В GET-запросах ограничивается не размер передаваемого
текста, а размер всей строки запроса, которая кроме текста может
содержать и другие параметры. Максимальный размер строки
запроса - 10Кб.
Необязательные
format
string
Формат текста.
Возможные значения:
plain - текст без разметки (значение по умолчанию);
html - текст в формате HTML.
Возвращает
В XML-интерфейсе возвращает структуру Translation, содержащую переведенный текст.
Например:
<?xml version="1.0" encoding="utf-8"?>
<Translation code="200" lang="en-ru">
<text>Быть или не быть?</text>
<text>Вот в чем вопрос.</text>
</Translation>
Элементы XML-схемы ответа:
Translation - корневой элемент, содержит элементы text (по одному для каждого
фрагмента). Атрибут code содержит код возврата (см. таблицу), атрибут lang - код
языка фрагмента, определенный сервисом.
text - массив строк с переведенным текстом (для XML-интерфейса -
последовательность элементов <text>). Количество элементов в массиве совпадает
с числом параметров text в запросе.
Коды возврата
Код
Значение
Описание
ERR_OK
200
Операция выполнена успешно.
ERR_TEXT_TOO_LONG
413
Превышен максимальный размер текста.
ERR_UNPROCESSABLE_TEXT
422
Текст не может быть переведен.
ERR_LANG_NOT_SUPPORTED
501
Заданное направление перевода не
поддерживается.
В JSON-интерфейсе вместо XML-элементов возвращаются JavaScript-объекты с теми же
именами и семантикой:
{
"code": 200,
"lang": "en-ru",
"text": [
"Быть или не быть?",
"Вот в чем вопрос."
]
}
В JSONP-интерфейсе те же самые JavaScript-объекты возвращаются в callback-функции
(например, myCallback):
myCallback({
"code": 200,
"lang": "en-ru",
"text": [
"Быть или не быть?",
"Вот в чем вопрос."
]
})
<head>
<title>Untitled Page</title>
<SCRIPT type="text/javascript">
function GoTranslate() {
var lang_ = document.formsearch.lang_.value;
var trans_words = document.formsearch.trans_words.value;
var FullSearchUrl = "http://translate.yandex.net/api/v1/tr.json/translate?lang="+
lang_ +
"&text=" + trans_words +
"&callback=myCallback";
//var FullSearchUrl =
"http://translate.yandex.net/api/v1/tr/translate?lang="+lang_+"&text="+trans_words;
location.href = FullSearchUrl;
}
</SCRIPT>
</head>
<body>
<FORM NAME="formsearch" action="">
Перевод:
<br>
язык оригинала-перевода: <INPUT TYPE="text" NAME="lang_" SIZE="40">
<br>
текст для перевода: <INPUT TYPE="text" NAME="trans_words" SIZE="40">
<br>
<INPUT TYPE="button" VALUE="Искать" onClick="GoTranslate()">
</FORM>
</body>
</html>
Задание 1: Создать приведенный пример скрипта в составе HTML-документа. Проверить
работу, проверить варианты перевода с немецкого на русский, с французского на русский,
с русского на английский.
Индивидуальное задание 1:
Вариант
1: Разобрать функционал API поиска по блогам, начиная с адреса:
Разработать страницу по аналогии с примером задания
1 для ввода следующих
параметров поиска по блогам:
- искомый текст
-Область поиска (с проверкой ввода одного из вариантов: popular, blog,
community, personal, comments, forum, all)
-Пол, возраст и место жительства
Вариант
2: Разобрать функционал API поиска по блогам, начиная с адреса:
Разработать страницу по аналогии с примером задания
1 для ввода следующих
параметров поиска по блогам:
- искомый текст
-Область поиска (с проверкой ввода одного из вариантов: popular, blog,
community, personal, comments, forum, all)
-дата начала и конца публикации
Вариант
3: Разобрать функционал API поиска по блогам, начиная с адреса:
Разработать страницу по аналогии с примером задания
1 для ввода следующих
параметров поиска по блогам:
- искомый текст
-Область поиска (с проверкой ввода одного из вариантов: popular, blog,
community, personal, comments, forum, all)
-ссылки
Вариант
4: Разобрать функционал API поиска по блогам, начиная с адреса:
Разработать страницу по аналогии с примером задания
1 для ввода следующих
параметров поиска по блогам:
- искомый текст
-Область поиска (с проверкой ввода одного из вариантов: popular, blog,
community, personal, comments, forum, all)
- Записи и комментарии одного блоггера
Пример работы с Yandex API Maps
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Примеры. Размещение карты на странице.</title>
<!--
Подключаем API карт
Параметры:
- load=package.standard - основные компоненты;
- lang=ru-RU - язык русский.
-->
type="text/javascript"></script>
<script type="text/javascript">
var myMap;
// Дождёмся загрузки API и готовности DOM.
ymaps.ready(init);
function init() {
// Создание экземпляра карты и его привязка к контейнеру с
// заданным id ("map").
myMap = new ymaps.Map('map', {
// При инициализации карты обязательно нужно указать
// её центр и коэффициент масштабирования.
center: [55.76, 37.64], // Москва
zoom: 10
});
document.getElementById('destroyButton').onclick = function () {
// Для уничтожения используется метод destroy.
myMap.destroy();
};
}
</script>
</head>
<body>
<div id="map" style="width:400px; height:300px"></div>
<input type="button" id="destroyButton" value="Удалить карту"/>
</body>
</html>
Задание 2: Создать приведенный пример скрипта в составе HTML-документа. Проверить
работу.
Примеры. Добавление прямоугольника на карту
<head>
<title>Примеры. Добавление прямоугольника на карту.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--
Подключаем API карт 2.x
Параметры:
- load=package.full - полная сборка;
- lang=ru-RU - язык русский.
-->
type="text/javascript"></script>
<script type="text/javascript">
// Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map('map', {
center: [-44.03, -176.64],
zoom: 6
}),
// Создаем первый прямоугольник
myRect = new ymaps.Rectangle([
// Задаем координаты диагональных углов прямоугольника
[-43.76, -176.60],
[-43.99, -176.69]
]),
// Альтернативный способ создания прямоугольника:
// создаем геообъект с типом геометрии "прямоугольник".
myGeoObject = new ymaps.GeoObject({
// Задаем модель геообъекта.
// Модель = геометрия + свойства гообъекта.
// Геометрия = тип геометрии + координаты геообъекта.
geometry: {
// Тип геометрии - прямоугольник
type: "Rectangle",
// Координаты
coordinates: [
[-43.73, -176.46],
[-43.99, -176.53]
]
}
});
myMap.geoObjects.add(myRect)
.add(myGeoObject);
}
</script>
</head>
<body>
<h2>Добавление прямоугольника на карту</h2>
<div id="map" style="width:600px;height:400px"></div>
</body>
</html>
Задание 3: Выполните пример, посмотрите работу. Далее просмотрите примеры работы с
Индивидуальное задание 2:
Вариант 1: Разобрать функционал API карты по примерам. Создать код, который
отображал бы карты в масштабе 8 с центром карты на «Бразилия, Рио-де-Жанейро». И
рисовал бы круг вокруг города.
Вариант 2: Разобрать функционал API карты по примерам. Создать код, который
отображал бы карты в масштабе 10 с центром карты на «Парагвай, Асунсьон». И рисовал
бы шестигранник вокруг города.
Вариант 3: Разобрать функционал API карты по примерам. Создать код, который
отображал бы карты в масштабе 8 с центром карты на «Намибия, Виндхук». И рисовал бы
квадрат вокруг города.
Вариант 4: Разобрать функционал API карты по примерам. Создать код, который
отображал бы карты в масштабе
8 с центром карты на «Юкон-Коюкек, Аляска,
Соединенные Штаты Америки». И рисовал бы треугольник вокруг города.
Отчет по лабораторной работе
В соответствии со структурой заготовки отчета и примером оформления оформить
в отчете все задания, выполняемые в ходе лабораторной работы, а также индивидуальные
задания по вариантам. Файл с отчетом называть по шаблону: Фамилия_лаб_раб_номер.
Отчет предоставляется в электронном виде либо лично преподавателю, либо на
электронную почту для проверки. Также по результатам лабораторной работы на
следующем за ней занятии проводится выборочный опрос по командам языка.

 

 

 

 

 

 

 

 

 

 

//////////////////////////////////////////