2013-11-03 2 views
0

RESTful API 서비스 용 Python API 래퍼를 만들고 싶습니다. 어떻게 설계 할 것인지 생각하고있었습니다.API 클라이언트 디자인, 매개 변수를 확인해야합니까?

예 URL 요청 :

:

https://www.api.com/collection/resource.json?userid=id&password=pass&command=value 

내가 예를 들어, 모든 수집에게 모듈과 이러한 모듈의 기능과 자원을거야 여기에 내가 API를 사용하는거야 방법

    :
    from apiname import collection 
    
    # params is a dict of the parameters sent to this resource 
    params = { 
        'userid': '123456', 
        'password': 'pass', 
        'command': 'value' 
    } 
    
    collection.resource(params) 
    

    내 주요 질문은 내가 자원에 대해 전달 된 매개 변수를 확인해야합니다, 자원에 전달 된 params DICT에 관한 것입니다 필요한 매개 변수가 전달됩니다

  • 체크하는 경우 또는 나는 간단 유지해야 자신의 유형 (캐릭터, 목록, INT, BOOL)

에 대한

  • 검사를 (아마도 통과하지 않을 경우 예외를 발생) 및 기능 전송을 리소스로 전달 된 항목은 무엇입니까? 내가 매개 변수를 확인해야하는 경우

    이 그것을 할 수있는 권장되는 방법은 무엇입니까, 나는 각 자원에 대해 저장된 모든 기본 매개 변수를 유지 생각하고 내가 예를 들어,이 기본 딕셔너리 모든 전달 된 매개 변수를 확인하십시오

    # this is the dict holding the info about all the parameters 
    defaults = {} 
    
    defaults['userid'] = {'type': str, 'required': True, 'default': None} 
    defaults['password'] = {'type': str, 'required': True, 'default': None} 
    defaults['command'] = {'type': list, 'required': False, 'default': 'some-value'} 
    

    따라야 할 경로는 무엇입니까?

  • +0

    클라이언트 개발자의 경험을 향상 시키거나 오류 검사를 제공하여 클라이언트가 API를 사용하여보다 쉽게 ​​개발할 수있게 할 것인가? – dm03514

    +0

    @ dm03514 네, 그렇습니다. 그러나 모든 권장 사항이나 예제를 환영합니다. – Pierre

    답변

    1

    클라이언트 측에서 매개 변수를 확인하면 현재 클라이언트와 서버 구현간에 강력한 결합이 생성됩니다. 서버가 일부 자원에 대해 수용하는 매개 변수 나 값을 변경하면 클라이언트와 요구 사항이 변경 될 수 있습니다. 이것은 REST에서 실제로 바람직하지 않습니다. API가 실제로 RESTful 일지라도 클라이언트는 그렇지 않으며 아키텍처의 이점을 활용하지 않습니다.

    클라이언트 쪽에서 매개 변수를 확인하지 마십시오. 그보다는 서버가 반환 한 오류를 신중하게 다루어야합니다. 이상적으로, 하나 이상의 매개 변수가 부적절하거나 누락 된 경우 자세히 설명해야합니다.

    관련 문제