2017-02-03 3 views
4

예를 들어 사용자가 스레드에서 새 스레드 또는 새 게시물을 만들 수있는 RESTfull API를 작성하고 있습니다. 이것은 정상적인 POST 요청을 사용하는 곳입니다. 또한 내 API를 통해 사용자는 서로 메시지를 보낼 수 있습니다. 그리고 사용자가 브라우저에서 알림을 원하는 메시지를 받으면 폴링 대신 몇 초마다 웹 소켓을 사용할 것입니다. 이미 새 스레드 또는 게시물을 작성, 메시지, 올 것이다 나는 또한 메시지를 보내려면이 연결을 사용합니다 웹 소켓과 열려있는 연결을 가지고 있기 때문에웹 소켓 및 REST 믹싱

내 질문

  • 이다?

  • 메시지 및 웹 소켓을 실시간으로 수신하고 메시지 기록을 가져 오기 위해 GET 요청을 생성하기 위해 POST 요청을 사용할 수 있습니까? 이 좋은 습관인가?

  • 나를 위해 필드의 유효성 검사를 처리하는 django rest framework을 사용하고 있는데, 일반적인 POST 요청 대신 websocket을 사용하여 리소스를 만들면 유효성 검사를 어떻게 처리 할 수 ​​있습니까?

저는 RESTfull API를 개발하는 데 신기한 일이며, 나는 웹 소켓으로 개발하기 시작했습니다. 나는 또한 메시지를 보내려면이 연결을 사용한다, 나는 이미 메시지 올 것이다 웹 소켓과 열려있는 연결을 가지고 있기 때문에 당신이

감사

답변

0

을 :) 위해 이렇게 논리적 보일 수있는 바보 같은 질문입니다 죄송합니다, 작성 새 스레드 또는 게시물?

에 달려 있습니다. CQRS 방식을 사용하고 있고 쓰기가 읽기와 다른 상자에서 처리되는 경우 일반 HTTP POST를 사용하려고합니다. 또는 웹 소켓을 지원하지 않는 외부 발신자와의 호환성을 제공해야하는 경우.

메시지를 실시간으로 수신하고 메시지 기록을 가져 오기 위해 POST 요청을 사용하여 메시지 및 웹 소켓을 만들 수 있습니까? 이게 우수 사례입니까?

적당하다고 들립니다. REST 호환성과 WebSocket을 향상시킬 수 있습니다. 내가하는 일은 웹 소켓을 사용하여 REST API를 향상시키는 것이다. 일부 작업은 두 부분으로 나뉩니다. 예를 들어 "autocompletes"는 본질적으로 빠른 연속 호출이며 읽기 모델에 속합니다. 두 가지 방법 모두 가능하지만 단점은 내장 출력 캐시를 활용할 수 없다는 것입니다. 그들을 위해 내 자신의 캐시를 구현하십시오.

나는 웹 소켓 대신 정상적인 POST 요청을 사용하여 자원을 작성하면 내가 확인을 처리 할 방법, 필드 나에게 의 검증을 처리 장고 나머지 프레임 워크를 사용하고 있습니다.

나는 django를하지 않지만 어떻게 든 그 유효성 검사에 연결하고 일단 비 직렬화 된 메시지 객체에서 호출 할 수 있다고 생각한다.ItemSerializer 그냥 평소 DRF 시리얼과 ws_create_item가 수신 웹 소켓 소비자 인 경우

3 번째 질문에 관해서
0

, 가장 기본적인 해결책은

def ws_create_item(message): 
    data = json.loads(message['text']) 
    serializer = ItemSerializer(data=data) 
    if serializer.is_valid(): 
     serializer.save() 

과 같을 것이다.