一個基本的HTTP服務客戶端:Demands

jopen 9年前發布 | 11K 次閱讀 Demands 網絡工具包

一個基本的HTTP服務客戶端。

By default it "demands" successful responses from API endpoints, otherwise it raises an exception.

Demands accepts all the same parameters asrequests.requestand extends therequests.Sessionclass, documentation for both: Requests Developer Interface.

Written and used by the folks at Yola to support our free website builder.

HTTPServiceClient Overview

  • base class for creating service clients
  • provides flexible way of http error handling for descendants
  • HTTPServiceErrorraised on unexpected service response

    </li>

  • Supports pre-send and post-send hooks

    </li> </ul>

    Usage
    from demands import HTTPServiceClient

    class MyService(HTTPServiceClient): def get_user(self, user_id): return self.get('/users/%s/' % user_id).json()

    def safe_get_user(self, user_id, default_user):
        response = self.get(
            '/users/%s/' % user_id, 
            expected_response_codes=[404])
        return response.json() if response.is_ok else default_user
    
    
    

    service = MyService(url='http://localhost/') user = service.get_user(1234)</pre></h2>

    Any parameters passed to the constructor will also be used for each and every request:

    service = MyService(
        url='http://localhost/',
        headers={'h1':'value'},
        auth=('username','pass'),
    )
    
    # sent with auth and both headers
    user = service.get('/some-path', headers={'h2': 'kittens'})

    項目主頁:http://www.baiduhome.net/lib/view/home/1427942573928

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!