2013-11-08 1 views
2

Я проектирования API, и я имею два необходимых параметров, которые являются обязательными для этого действиялучшая практика пройти два обязательных параметра в запросе GET REST

Я два варианта, чтобы пройти их

1) /сервера/server_id/Exte/device_id/агентов/agent_id/live_monitoring

Неудобство: toooooo длинных

2) /сервера/server_id/live_monitoring device_id = 23 & agent_id = 767

Неудобство: эти параметры не должны быть параметры запроса, поскольку они необходимы не факультативный

Какой подход я должен идти с?

ответ

0

Вам все же лучше пойти с параметрами запроса (это подход RESTful), но обработать их на стороне конечной точки, чтобы вернуть ошибку, если они не предоставлены.

Например, в PHP, вы могли бы сделать:

if (!isset($_GET['device_id'])) 
    echo json_encode(array("error"=>"You need to provide device_id")); 
if (!isset($_GET['agent_id'])) 
    echo json_encode(array("error"=>"You need to provide agent_id")); 
1

Вы должны решить

  • Если эти параметры определяют дочерние ресурсы, то вы должны использовать /родитель /: идентификатор/ребенок/: child_id URL
  • Если эти параметры используются только для фильтрации данных, то вы должны использовать param_1 = parm_1_value
?

О Long URL Если вам не нужно проверить права доступа или что-то еще принадлежат к родительскому ресурсу вы можете использовать либо

/server/{:server_id|/exte/{:device_id}/agent/{:agent_id}/live_monitoring 

или

/agent/{:agent_id}/live_monitoring 

Но это будет два разных ресурсов

 Смежные вопросы

  • Нет связанных вопросов^_^