21

Вопрос по rest, api – Идентифицировать элемент по идентификатору или слагу в RESTful API

Error: User Rate Limit ExceededHow should a URL of a RESTful API look like when you should be able to identify an item by either an ID or a slug?

Я мог бы придумать три варианта:

GET /items/<id>
GET /items/<slug>

Error: User Rate Limit Exceeded

GET /items/id/<id>
GET /items/slug/<slug>

Error: User Rate Limit Exceeded

GET /items?id=<id>
GET /items?slug=<slug>

Error: User Rate Limit Exceededmethod for getting multiple items:

GET /items?ids=<id:1>,<id:2>,<id:3>
GET /items?slugs=<slug:1>,<slug:2>,<slug:3>

Error: User Rate Limit Exceeded

Что является лучшим и наиболее широко принятым решением для этихproblems? In general, what matters while designing such an API?

  • Глядя на что-то подобное прямо сейчас. Я чувствую, что опция частичного совпадения / возврата массива будет отображаться под URL-адресами с & quot; поиском & apos; в них может быть больше смысла, и просто иметь прямое сопоставление ресурсов, когда используется только существительное объекта. например ? / Деталь / Поиск пробковые = & л; пробковый & GT; возвращает массив совпадений, / items? slug = & lt; slug & gt; пытается прямой матч.

    от
  • Предположительно, каждый завершенный слаг уникально идентифицирует ресурс, поэтому, если вы включаете частичное сопоставление при поиске слагов, я согласен, что массив имеет смысл. С точки зрения того, что кто-то использует API RESTful, я хотел бы написать как можно меньше кода разбора: даже для идентификатора, когда известно, что возвращается только одно совпадение, мне будет хорошо, если вы вернете массив. Возможно, он не "чистый" возвращать массив, когда вы знаете, что в нем будет только один элемент, но это экономит мои усилия, чтобы вы были прощены.

    от
  • Поскольку у меня будет больше параметров запроса для поиска элементов, которые все возвращают массив, было бы разумно также возвращать здесь массив? Вы можете искать слагов, но не можете четко идентифицировать элементы по ним, поэтому логично возвращать массив.

    от Claudio Albertin
  • Это почти вопрос Колы / Пепси в эти дни. :) Я бы сказал, что вы должны поддерживать / items / & lt; uniqueid & gt; быть RESTful-сертифицированным, но также разрешить строку запроса, которая ищет на основе идентификатора или пули, будет в рамках парадигмы. И я предпочитаю колу.

    от
  • Error: User Rate Limit Exceeded

    от Claudio Albertin
  • Error: User Rate Limit Exceeded

    от Claudio Albertin
  • Error: User Rate Limit Exceededcodex.wordpress.org/Glossary#SlugError: User Rate Limit Exceeded

    от Spencer Kormos
  • Error: User Rate Limit Exceeded

    от Claudio Albertin
  • Error: User Rate Limit Exceeded

    от Spencer Kormos
  • 10

    Error: User Rate Limit Exceeded

    GET /items/<id>
    GET /items?slug=<slug>
    GET /items?id=<id>