Що таке кінцева точка?


172

Я читав про OAuth, і він продовжує говорити про кінцеві точки. Що саме є кінцевою точкою?


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

6
Можливо, це схвалено, тому що це питання теж у інших людей. Чи не в цьому справа?
Нора Макдугалл-Коллінз

Відповіді:


74

Усі відповіді, розміщені досі, є правильними, кінцева точка - це просто один кінець каналу зв'язку. У випадку з OAuth є три кінцеві точки, з якими потрібно мати справу:

  1. URI тимчасового довіреності (називається URL-адресою запиту маркера в специфікації спільноти OAuth 1.0a). Це URI, на який ви надсилаєте запит, щоб отримати несанкціонований маркер запиту від постачальника сервера / послуги.
  2. URI авторизації власника ресурсу (називається URL-адреса авторизації користувача у специфікації спільноти OAuth 1.0a). Це URI, на який ви скеровуєте користувача, щоб дозволити маркер запиту, отриманий з URI тимчасового довіреного запиту.
  3. URI-маркер запиту (називається URL-адресом маркера доступу в специфікації спільноти OAuth 1.0a). Це URI, на який ви надсилаєте запит, щоб обміняти авторизований маркер запиту на маркер доступу, який потім може бути використаний для отримання доступу до захищеного ресурсу.

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


5
Чому б просто не назвати його (тобто так звану "кінцеву точку") "базовим URI"? Чи є принципова різниця між "кінцевою точкою" та "базовим URI"? Дякую.
Затримано

@Xlsx Це залежить від реалізації. Приклад запиту може бути GET "/ users? Name = admin" або "/ users / admin". Ви можете зробити те чи інше, або те, або інше.
Бурак

2
Не корисно, оскільки ОП запитувало "загальні кінцеві точки", а не конкретно OAuth. Я зараз розгублений.
світанок

311

Давайте хлопці :) Ми могли б зробити це простіше, на прикладах:

/this-is-an-endpoint
/another/endpoint
/some/other/endpoint
/login
/accounts
/cart/items

і коли його кладуть під домен, це виглядатиме так:

https://example.com/this-is-an-endpoint
https://example.com/another/endpoint
https://example.com/some/other/endpoint
https://example.com/login
https://example.com/accounts
https://example.com/cart/items

Може бути або http, або https, ми використовуємо https у прикладі.

Кінцева точка також може бути різною для різних методів HTTP, наприклад:

GET /item/{id}
PUT /item/{id}

буде два різних кінцевих точок - один для г etrieving (як в «з Р уд» абревіатура), а інший для у pdating (як в «CR U D»)

І це все, насправді так просто!


25
Запропоновано згадати, що різні методи HTTP визначають окремі кінцеві точки.
Боян Кушльов

4
Matthew 20:16 KJV - Отже, останнім буде перший (..) :)
sobi3ch

2
Це дуже погано, обмін стеками не відображає цю відповідь як першу чи другу відповідь. Для мене це був шлях вниз за списком і, безумовно, найкращий, оскільки я не знав, чи цілий набір дій і контролерів вважається кінцевою точкою, або одна дія в одному контролері визначає кінцеву точку. Ця відповідь сказала мені, що саме остання.
Thorkil Værge

Настільки прикро, що ОП не обрала цієї відповіді, що найкраща відповідь.

1
@ Зазвичай кінцева точка - це те, що повинно викликатися запитом, що ви надаєте в якості інтерфейсу для споживачів API - те, що ви скажете їм використовувати. Тож у цьому прикладі ваша реалізація обробляє дві кінцеві точки (адже ви надали своєму споживача / користувачеві API два способи щось зателефонувати). Але я щойно писав, що це "взагалі", і якщо є хтось, хто наполягає на тому, щоб називати кінцеву точку трохи іншою (наприклад, у вашому прикладі хтось наполягав би сказати, що це одна кінцева точка), то ви говорите "Добре, що б це не було просто слова! Я досить щасливий, що ми просто розуміємо одне одного ",
Томег

43

Це один кінець каналу зв'язку, тому часто це буде представлено у вигляді URL-адреси сервера чи послуги.


35

Кінцева точка - це шаблон URL-адреси, який використовується для спілкування з API.


12

Кінцева точка в мові автентифікації OpenID - це URL-адреса, на яку ви надсилаєте (POST) запит аутентифікації.

Витяги з API аутентифікації Google

Щоб отримати кінцеву точку Google OpenID, виконайте відкриття, надіславши запит GET або HEAD HTTP на адресу https://www.google.com/accounts/o8/id . Під час використання GET рекомендуємо встановити заголовок Accept на "application / xrds + xml". Google повертає документ XRDS, що містить URL-адресу кінцевої точки постачальника OpenID. Адреса кінцевої точки позначається як:

<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type> 
<URI>{Google's login endpoint URI}</URI> 
</Service>

Після придбання кінцевої точки Google ви можете надіслати на неї запити автентифікації, вказавши відповідні параметри (доступні на пов’язаній сторінці). Ви підключаєтесь до кінцевої точки, надіславши запит до URL-адреси або зробивши HTTP POST-запит.


7

Кінцевою точкою є "точка з'єднання" служби, інструменту або програми, доступ до якої здійснюється через мережу. У світі програмного забезпечення будь-яке програмне забезпечення, яке працює і слухає з'єднання, використовує кінцеву точку як "вхідні двері". Коли ви хочете підключитися до програми / послуги / інструменту для обміну даними, ви підключаєтесь до його кінцевої точки


4

Термін Endpoint спочатку використовувався для послуг WCF. Пізніше, хоча це слово використовується синонімом ресурсів API, REST рекомендує називати ці URI (URI [s], які розуміють HTTP-дієслова та слідують архітектурі REST) ​​як "Ресурс".

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


4

Відхилення від голосування не має нічого спільного зі мною, але джерело (: Навіть жодна причина для цього не вказана.


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

З приємного джерела .


2

Кінцевою точкою цього терміна є URL-адреса, орієнтована на створення запиту. Погляньте на наступні приклади з різних точок:

/api/groups/6/workings/1
/api/v2/groups/5/workings/2
/api/workings/3

Вони можуть чітко отримати доступ до одного і того ж джерела в заданому API.


1

Коротка відповідь: "кінцева точка - це абстракція, яка моделює кінець каналу повідомлення, через який система може надсилати або приймати повідомлення" ( Ibsen, 2010 ).


Кінцева точка та URI (неоднозначність)

Кінцева точка не збігається з URI. Однією з причин є те, що URI може керувати різними кінцевими точками, як кінцева точка до GET, інша до POST тощо. Приклад:

@GET /api/agents/{agent_id} //Returns data from the agent identified by *agent_id*
@PUT /api/agents/{agent_id} //Update data of the agent identified by *agent_id*

Кінцева точка та ресурс (неоднозначність)

Кінцева точка не є такою ж, як ресурс. Одна з причин полягає в тому, що різні кінцеві точки можуть їздити на один і той же ресурс. Приклад:

@GET /api/agents/{agent_id} @Produces("application/xml") //Returns data in XML format
@GET /api/agents/{agent_id} @Produces("application/json") //Returns data in JSON format

0

Простіше кажучи, кінцева точка - це один кінець каналу зв'язку. Коли API взаємодіє з іншою системою, точки дотику цього повідомлення вважаються кінцевими точками. Для API, кінцева точка може містити URL-адресу сервера або послуги. Кожна кінцева точка - це місце, з якого API можуть отримати доступ до ресурсів, необхідних для виконання своєї функції.

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

Детальніше ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.