Як тестувати та грати за допомогою веб-API, простий спосіб з листоношею

У світі, де статичні веб-сайти та додатки дедалі більше залежать від API, що підтримуються окремо, важко зрозуміти, як вони працюють, просто погравши в браузері.

То як ми можемо використовувати Postman для тестування наших існуючих API та розуміння того, як вони працюють?

  • Що таке листоноша?
  • Що ми будемо будувати / вчитися?
  • Частина 0: Налагодження з поштарем
  • Частина 1: Вступ до листоноші
  • Частина 2: Створення нового запиту листоноші на ОТРИМАННЯ інформації про Squirtle
  • Частина 3: Створення колекції запитів у Postman для PokéAPI
  • Частина 4: Здійснення запитів POST із Поштарем для перекладу речень, щоб звучати як Йода
  • Частина 5: Автентифікація запитів до Lord of the Rings API за допомогою ключа API

Що таке листоноша?

Postman - це інструмент, який команди можуть використовувати для надійного тестування API за допомогою простих у використанні конфігурацій. Він оснащений функціями, яких ви очікуєте при роботі з API, включаючи аутентифікацію, налаштування заголовків, налаштування корисного навантаження та ще багато, що допомагає зменшити тертя використання API.

І це не лише для тестування. Краса в тому, що це може бути використано для багатьох аспектів роботи з API для багатьох різних членів команди. Можливо, менеджер проекту хоче перевірити, чи все працює, або може бути простіше внести зміни безпосередньо за допомогою API, або інженеру з контролю якості потрібно переконатися, що все все ще працює, або розробник хоче активно вносити зміни під час роботи над самим API .

Найкраще про це - Листоноша забезпечує можливості співпраці. Безкоштовний рівень включає експорт та імпорт колекцій збережених запитів API, а також створення спільних посилань. Якщо ви входите до команди, у них є платні рівні, які дозволяють синхронізувати ваші колекції, щоб переконатися, що всі мають найновіші та найновіші колекції.

Що ми будемо будувати / вчитися?

Ми розглянемо два різні приклади API для висвітлення концепцій Поштальона.

Спочатку ми розглянемо кілька простих запитів HTTP із загальнодоступним API для Pokémon.

Потім ми використаємо API перекладача Yoda для однієї частини, щоб продемонструвати, як робити конкретні запити HTTP.

Коли ми зрозуміємо, як працюють основи, ми використаємо API Lord of the Rings, щоб дізнатися, як працює автентифікація з API. Для цього вам потрібно буде зареєструватися в безкоштовному обліковому записі для ключа API.

Частина 0: Налагодження з поштарем

Перш ніж ми почнемо, вам знадобиться Листоноша, щоб дотримуватися цього покрокового керівництва. Хороша новина - Postman доступний безкоштовно на Mac, Windows та Linux, тож ви зможете знайти версію, яка вам підходить.

Отримати листоношу: //www.postman.com/downloads/

Після завантаження перегляньте стандартні інструкції з встановлення, відкрийте їх, і ми повинні бути готові до роботи!

Частина 1: Вступ до листоноші

Перший раз, коли ви відкриваєте «Листоноша», вам негайно покажуть панель запуску з безліччю опцій для початку.

Це може здатися трохи приголомшливим, але давайте розберемо деякі ключові поняття, які нам потрібно буде знати.

Запити

Запит - це щось на зразок того, як це звучить, це конкретний запит API. Це буде один тип запиту, будь то GET або POST до певної кінцевої точки. Ви захочете створити нові запити для кожного типу кінцевої точки, які дозволять вам переходити між ними під час тестування.

Колекції

Колекція - це група запитів. Це зручно для організації ваших запитів у різні групи. Це може бути так просто, як два абсолютно різних API (тобто Twitter проти Slack), або це можуть бути дві різні групи API для одного API (тобто. Twitter Tweets API проти Twitter Accounts API).

Авторизація

Авторизація - це спосіб автентифікації запитів за допомогою API, незалежно від того, хто робить запит або комп’ютер, який робить цей запит від вашого імені. Це зазвичай поставляється у формі ключа API, який може бути статичним значенням, присвоєним вашому обліковому запису, або динамічно генеруватися за допомогою таких інструментів, як OAuth.

Середовища

Середовища дозволять вам налаштувати кінцеві точки на використання певних змінних, що спрощують використання однакових кінцевих точок між різними середовищами. Наприклад, у вас може бути однакова /profileкінцева точка як у виробничому середовищі, так і в середовищі розробки, але вони мають різні домени. Середовища дозволяють управляти одним запитом із змінним доменом.

Робочі простори

Ми не будемо надто заглиблюватися в робочі простори в цій публікації, але це дозволяє вам керувати та упорядковувати різні набори колекцій. Уявіть, якщо ви хочете використовувати Поштовича як для роботи, так і для особистого проекту, у вас може бути робоча робоча область, а також особиста робоча область.

Для цілей цієї статті ми будемо охоплювати запити, колекції та авторизацію.

Частина 2: Створення нового запиту листоноші на ОТРИМАННЯ інформації про Squirtle

Тепер, коли ми краще розуміємо різну термінологію, давайте створимо запит.

У верхньому лівому куті інтерфейсу ви побачите, але помаранчеву кнопку із написом New . Натисніть і натисніть " Запит" .

Перш ніж ми потрапимо в сам запит, він вимагає кілька речей.

Перше, що потрібно, - це ім’я. Ми почнемо з запиту інформації про покемона-білку, тож давайте назвемо це „Покемон - білка”.

Для цього також потрібна колекція, тому натисніть Створити колекцію і назвемо колекцію “Мій улюблений покемон”.

Клацніть помаранчевою кнопкою біля назви колекції та натисніть Зберегти .

На даний момент у нас буде новий запит, тому давайте побудуємо цей запит.

Для нашого першого запиту спочатку потрібно заповнити дві речі:

  • Тип запиту: GET, POST, PUT тощо - ми використовуватимемо GET
  • URL-адреса запиту: Кінцева точка для вашого запиту API - для нашого запиту ми будемо використовувати //pokeapi.co/api/v2/pokemon/squirtle/

І як тільки ви переконаєтесь, що це правильно, ви можете просто натиснути синю кнопку Надіслати праворуч, і ми успішно зробили перший запит!

Ми відразу отримуємо кілька речей, які ми можемо побачити:

  • Body: внизу ми повинні бачити тіло відповіді на запит API. Для нашого Squirtle API, ми повинні мати об'єкт JSON з даними , як abilities, base_experienceі forms.
  • Статус: праворуч ми повинні побачити код стану HTTP. «200 ОК» - це хороший знак, і це означає, що він був успішним!
  • Час: просто скільки часу тривав запит, щоб закінчити
  • Розмір: розмір даних відповідей у ​​КБ (у нашому прикладі)

Ви також можете навести курсор на статус, час і розмір і отримати більш детальний огляд кожного варіанту.

Тож ми зробили свій перший запит!

Одне, що слід помітити, перш ніж рухатись далі, це те, що наш запит виглядає так, ніби він знаходиться на вкладці браузера. Якщо ми закінчимо з цим конкретним запитом, ми можемо закрити вкладку та натиснути кнопку Зберегти, щоб переконатися, що всі наші зміни є там для наступного разу!

Частина 3: Створення колекції запитів у Postman для PokéAPI

Тепер, коли ми створили запит, давайте створимо їх колекцію. Технічно нам уже довелося створити нову колекцію для Частини 2, але ми створимо нову, щоб дізнатися, як працюють самі колекції.

У верхньому лівому куті інтерфейсу знову натисніть помаранчеву кнопку Новий і виберіть Колекція .

Подібно до запиту, він запитує ім’я, тому назвемо це “PokéAPI”. За бажанням ви можете додати опис, а потім натисніть Створити внизу.

Зліва ви побачите свою колекцію. Ви можете вибрати та розширити папку, оскільки ми будемо з нею працювати.

Перш ніж ми додамо запит, PokéAPI має різні типи запитів, тому має сенс організувати його трохи ретельніше. Тож давайте клацніть три крапки поруч із колекцією PokéAPI та виберіть Додати папку .

Подібно до інших, це вимагає назви. Папки схожі на колекції всередині колекції, тому ви отримуєте схожі варіанти. Давайте назвемо цей «Покемон» і натисніть оранжеву кнопку « Зберегти », як раніше.

Тепер додамо наші запити! Спочатку клацніть три крапки біля папки Pokémon, подібно до того, як ми додали папку до колекції, але цього разу виберіть Додати запит .

Давайте назвемо цей запит «покемонами». Хоча може бути заплутаним, що ми маємо запит на покемонів всередині папки Pokémon, Pokemon - лише одна з кінцевих точок групи Pokémon.

Тепер давайте використаємо той самий API, який ми використовували з нашим запитом Squirtle раніше:

  • Тип запиту: GET
  • URL-адреса запиту: //pokeapi.co/api/v2/pokemon/squirtle/

І як і раніше, коли ми натискаємо синю кнопку Надіслати , ми повинні побачити успішний запит!

Тепер додамо ще один запит. Виконайте той самий процес, що і раніше, щоб створити новий запит у папці PokéAPI Pokémon і дайте цьому запиту назву «Можливості».

Якщо ви прокручуєте відповідь від першої кінцевої точки Squirtle, ви бачите багато інших URL-адрес API. Угорі у нас є abilitiesі у нас є два різні - “потік” і “дощик”.

Виберіть свою улюблену здатність «Бірюхи» та скопіюйте urlзначення в новий запит здібностей, який ми щойно створили, я збираюся використати rain-dish.

Ми можемо залишити тип запиту як GET, натиснути синю кнопку « Надіслати », і ми знову побачимо успішну відповідь!

Тут ми отримуємо багато інформації про наші здібності «Бірюзовий посуд до дощу», а деякі деталі подаються різними мовами, що круто!

Отже, ми маємо нову колекцію PokéAPI з папкою Pokémon, що представляє групу кінцевих точок API Pokémon, включаючи Pokemon та здібності.

Ми зупинимо Частину 3 цими двома запитами, але сміливо продовжуйте і додайте скільки завгодно запитів PokéAPI!

Частина 4: Здійснення запитів POST із Поштарем для перекладу речень, щоб звучати як Йода

Поки ми робили лише запити GET, але що, якби ми хотіли зробити запит POST, де нам потрібно фактично надіслати деякі дані?

Для надсилання запиту на POST ми будемо використовувати API перекладача Yoda з funtranslations.com. Хоча цей API приймає лише один параметр, це все ще хороша загальнодоступна кінцева точка, яку ми можемо використовувати для розуміння концепції.

Спочатку давайте створимо нову колекцію з новим запитом:

  • Колекція: Веселі переклади
  • Запит: Йода

Цього разу замість запиту GET наша конфігурація запиту буде такою:

  • Тип запиту: POST
  • URL-адреса запиту: //api.funtranslations.com/translate/yoda

Зараз цього разу, якщо ми натиснемо синю кнопку Надіслати , ми помітимо, що не отримаємо успішної відповіді 200, ми отримаємо 400!

Ми фактично ніколи не налаштовували будь-які дані для розміщення в API, і вони вимагають цих даних, тому давайте додамо їх.

Прямо під URL-адресою запиту натисніть Body . Тоді замість нічого не виберіть сирий як тип фігури. Нарешті, у крайньому правому куті типів, змініть Text на JSON .

Потім у простір під ним можна додати таке:

{ "text": "Hello, I am learning how to test APIs with Postman!" } 

А тепер ще раз натисніть синю кнопку Надіслати, і ми отримаємо успішну відповідь!

Ми можемо застосувати цю концепцію майже до будь-якого API. Листоноша не лише дозволяє вам розміщувати JSON, це дозволяє використовувати інші формати, які ми бачимо, перелічені в розділі Тип тіла, тобто у вас є багато варіантів залежно від того, що вимагає API, який ви використовуєте.

Частина 5: Автентифікація запитів до Lord of the Rings API за допомогою ключа API

Для решти покрокового керівництва ми будемо використовувати API Lord of the Rings.

По-перше, Lord of the Rings API вимагає автентифікації, щоб робити запити за допомогою ключа API. Отже, для початку, перед тим, як ми зануримось, вам потрібно буде створити безкоштовний обліковий запис.

//the-one-api.herokuapp.com/sign-up

Після реєстрації та входу в систему перше, що ви побачите, - це ваш ключ API! Або скопіюйте цю клавішу вниз, або запам’ятайте, де ви можете її знайти пізніше. Якщо ви залишите сторінку, ви завжди зможете взяти її, перейшовши до вітання, а потім до облікового запису на навігаційному веб-сайті API.

Для початку давайте спочатку створимо нову колекцію та запит:

  • Колекція: Володар кілець
  • Папка: Фільм
  • Запит: Усі фільми
  • Тип запиту: GET
  • URL-адреса запиту: //the-one-api.herokuapp.com/v1/movie

Після того, як ви налаштуєтесь із вищевказаного, натисніть « Надіслати» , і ви відразу помітите, що він дасть відповідь із написом 401 та неавторизацією.

Оскільки для цього API потрібен ключ API, саме цього ми і очікували. Тож давайте клацніть на вкладці Авторизація . Потім ми можемо вибрати тип токена на пред'явника , і праворуч ми можемо вставити наш ключ, який ми щойно встановили за допомогою Lord of the Rings API.

І як тільки ми натискаємо Send , ми бачимо успішну відповідь!

Це справді спрацювало чудово, але що, якщо ми маємо купу запитів, які використовують один ключ. Чи маємо ми керувати цим на кожному запиті?

Замість того, щоб керувати ним на кожному окремому запиті, ми можемо керувати ним на колекції. Давайте спочатку побудуємо ще один запит.

У нашій колекції «Володар кілець» і в папці «Фільм» створіть новий запит:

  • Запит: Цитата за ідентифікатором фільму
  • Тип запиту: GET
  • URL-адреса запиту: //the-one-api.herokuapp.com/v1/movie/{id}

У цьому запиті, давайте використаємо ідентифікатор з відповіді на перший запит, я збираюся використати, 5cd95395de30eff6ebccde5bякий є ідентифікатором Дві вежі, тому URL-адреса запиту буде виглядати так:

//the-one-api.herokuapp.com/v1/movie/5cd95395de30eff6ebccde5b

Тепер, замість того, щоб встановлювати наш маркер у запиті Authorization, ми збираємося залишити тип як Inherit auth від батьків . Клацніть на три крапки поруч із колекцією та виберіть Редагувати .

Тут ми будемо робити те саме, що і з першим запитом, але з конфігурацією колекції. Виберіть вкладку « Авторизація », під типом виберіть « Маркер на пред'явника» і знову вставте маркер у поле «Токен»

Нарешті, натисніть Оновити і натисніть синю кнопку Надіслати ще раз, і ми побачимо успішний запит!

Тепер ми можемо повернутися до нашого запиту на всі фільми та оновити авторизацію, щоб використовувати тип наслідування від батьків, і він все одно повинен продовжувати працювати!

Що ще ми можемо зробити з листоношею?

Незважаючи на те, що я висвітлив багато основ, з Postman можна зробити набагато більше. Ось кілька моїх улюблених.

Змінні середовища

Якщо ви працюєте розробником над проектом, цілком ймовірно, що ваша команда використовує кілька середовищ, таких як середовище розробки та виробництва. Замість того, щоб створювати і підтримувати повністю окремі запити, ви можете додати змінну середовища і замість цього змінити цю змінну при перемиканні між середовищами!

Змінні застосовуються до багатьох сценаріїв, але це звичайне використання. Перегляньте документи поштарки, щоб дізнатися, як це зробити.

//learning.postman.com/docs/postman/variables-and-environments/variables/

Імпорт та експорт колекцій та даних

Чудова річ Поштаря - це те, що після того, як усі ваші запити організовані, ви можете експортувати їх для використання іншими. Це також означає, що ви можете імпортувати колекції від інших членів команди. Це значно полегшує переконання, що всі користуються однією колекцією.

Бонус: ви навіть можете зберігати ці файли у сховищі Git, оскільки вони є просто JSON.

Але майте на увазі - якщо ви використовуєте авторизацію для колекції, як ми описали в цьому посібнику, ви хочете переконатися, що не включаєте це під час експорту своєї колекції.

//learning.postman.com/docs/postman/collections/importing-and-exporting-data/

Автоматизоване тестування

Коли у вас є набір запитів у колекції і навіть краще, якщо ви зберігаєте їх у Github, ви можете почати використовувати ці запити як частину способу управління автоматизованим тестуванням вашого API.

Незважаючи на те, що для цього існує кілька рішень, Postman включає колектор колектора, вбудований безпосередньо в програму, а Newman - це інструмент командного рядка, який дозволяє запускати тести прямо з терміналу.

//www.postman.com/use-cases/api-testing-automation/

Який ваш улюблений спосіб тестувати та грати з API?

Поділіться зі мною у Twitter!

Слідуйте за мною, щоб дізнатись більше про Javascript, UX та інші цікаві речі!

  • ? Слідуйте за мною у Twitter
  • ? Підписатися на мій Youtube
  • Підпишіться на мою розсилку