저는 API의 리소스를 꾸준히 구축했지만, RESTful API를 빌드하는 정확한 방법에 대한 많은 연구를 거쳐서 '복잡한'요청을받는 방법의 예를 찾을 수 없었습니다. 예를 들어이것이 올바른 REST 구현입니까?
(인증 키 갱신에 불과하다) 로그인 프로세스의 일부로서, 다음 URI는 클라이언트로 전달됩니다 :
/api/auth/login
이 URI에 아무런 값이 없습니다는 리소스는 /auth/
이고 트리거되는 명령은 /login/
입니다. 실제 로그인 세부 사항은 서버 권한 부여 헤더로 보내집니다.
이제이 질문에 대한 질문을 던졌습니다. 클라이언트가 키의 유효 기간을 알려주는 명령을 작성한 것이므로 즉시 명령 이름과 비슷한 getkeyexpiration
으로 그려졌습니다. .
갑자기 나는 이것이 6 제약에서 읽은 것처럼 들리지 않는다고 느꼈다. 이것은 조작 호출과 비슷하다고 느낀다.
위 예제를 기반으로해도 여전히 RESTful API입니까? 단순히 URI 리소스 이름과 추가 된 값을 사용하여이 작업을 수행 할 수있는 방법을 생각할 수 없기 때문에 걱정됩니다. 서버가 작동하는 방법의 맥락이된다 http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands-rest-or-http 이해하기 시작하고
그 명사 단어 자원과 자원 만 이름을 지정하여이 읽기에서
:
는EDIT 감사 훨씬 더 명확 해. 내 위의 예에 대해서는
은: 그 자원의 컨텍스트이기 때문에
/api/auth/login
나는, 로그인의 접두사로 인증 사용했다. 내 시스템을 확장 가능하도록 설계 중이며 URI 수준에서 자원을 분류하는 방법이 필요합니다. 이 작업을 수행하는 표준 방법이 있습니까?
마지막 포인트에서 사용자 (이 경우 시스템 관리자)는 안심할 수있는 API인지 여부에 관계없이 사용자 이름과 비밀번호를 요구합니다. 작동 방식은 사용자 이름을 보내고 한 번 전달하면 서버가 새로 생성 된 키를 사용하여 사용자 인증 테이블을 업데이트 한 다음 클라이언트로 다시 보냅니다. 이때부터 클라이언트는 대신 인증 키를 사용할 수 있습니다 (만료 될 때까지). 모든 요청에 대해 일반 텍스트 사용자 이름과 암호를 보내지 않도록하는 수단입니다. – Flosculus
클라이언트가 키를 확인하는 것이 중요하지 않습니다. 키가 만료되어 클라이언트가 알게되고 다시 로그인해야하는 경우 클라이언트 응용 프로그램 자체에서 자동으로 수행됩니다. api URI는 MVC 라우팅 인/module/resource/action과 유사한 시스템을 따릅니다. 행동은 일종의 하위 자원 일 수 있습니다. 나는 요청이 언젠가 연장 될 수 있는지를 알 수 없기 때문에 URI로 데이터를 보내는 것에 익숙하지 않다. 명명 규칙이 위의 예와 관련하여 유일한 제약 사항입니까? – Flosculus
지금 설명한 것과 비슷한 시스템을 사용하도록 전환했습니다. 감사합니다. – Flosculus