アクションモジュール
当社のインタフェースでその特性を取得し、POSTメソッドであるため、要求のパッケージ・インターフェース・メソッドは、メソッドの呼び出し要求に渡されたパラメータに応じて、これだけ取得し、POSTメソッドをカプセル化:
インポート要求が インポートJSONを から Util.Log インポート * インポートトレースバックが声をかけ DEF :api_request(メソッド、BASEURL、ヘッダ、認証、ボディ、test_case_name) 「」 " アクションキーワード、方法を確認するか、投稿するgetメソッドを使用することによって、リクエストパスのBASEURL、ヘッダ空の要求ヘッダー、承認のための認証ログインは、体があるとき場合、POST要求データ情報の要求方法「」 " #グローバルレスポンス default_header = { 『のContent-Type 』:『ファイルアプリケーション/ JSON 』} #ないリクエストヘッダは、If情報、デフォルトの要求ヘッダーが IF ない:ヘッダ ヘッダ = default_headerの #文字列が読み出されているので優れたヘッダ情報であれば、それは辞書に必要なヘッダ情報である #のGETリクエスト のIF method.lower()== 「GET 」: 試し: IF でisinstance(ボディ、辞書): 情報(" - " * 80 ) 情報(" 要求インタフェース操作である:%S "%のtest_case_name) 情報(「インターフェイスアドレスの要求は次のとおりです。%S 」%BASEURL) 情報(" データ要求がある:%S "%のボディ) R = requests.get(BASEURL、paramsは=本体、ヘッダー=ヘッダ、AUTH = AUTH) INFO(" 请求返回状态码:%S "%のr.status_code) 他: #R = requests.get(BASEURL + STR(本体)、ヘッダ=ヘッダ、AUTH = AUTH) R = requests.get(BASEURL、ヘッダー=ヘッダ、AUTH = AUTH) 情報(" - " * 80 ) 情報(" 要求インタフェース操作である:%S "%のtest_case_name) 情報(「インターフェイスアドレスの要求は次のとおりです。%S 」%BASEURL) 情報(" データ要求がある:%S "%のボディ) 情報(" ステータスコードを返すように要求されます:%S "%のr.status_code) リターン・R&LT 除く例外E AS: # ( "例外を入力してください")印刷 情報(「メソッド要求例外が発生GET:URLリクエストは%sと、コンテンツを要求しましたある%S \ nは次のように異常情報が発生した:%S "%(BASEURL、本体、traceback.format_exc())) R = なし リターンのR #のポスト请求 のelif method.lower()== " ポスト" : 試してください: 場合でisinstance(ボディ、辞書): 情報(" - " * 80 ) 情報(" 要求インタフェース操作である:%S "%のtest_case_name) 情報(「インターフェイスアドレスの要求は次のとおりです。%S 」%BASEURL) 情報(" データ要求がある:%S "%のjson.dumps(ボディ)) R = requests.post(BASEURL、ヘッダ=ヘッダ、データ=のjson.dumps(本体)、AUTH = AUTH) 情報(「ステータスコードを返すように要求した:%S 」%のr.status_code) 他: 昇給とValueError を除くE ASとValueError: 情報(「POSTメソッド要求例外が発生:URL要求は%sと、要求されたコンテンツは、%sの\ nは次のように異常情報が発生します。%S 」%(BASEURL、身体、「リクエストパラメータが辞書型ではありません」)) R = なし を除いて電子などの例外: 情報(" POSTメソッド要求例外が発生:URL要求は%sと、要求されたコンテンツがある%sの\ nは次のように異常情報が発生します。%S "%(BASEURL、ボディ、traceback.format_exc())) R = なし 戻り R
詳細:
プロジェクト、ポストプロセスのContent-Typeの "の特徴は、「アプリケーション/ JSON」ですので、私はパッケージ内にカプセル化方式ヘッダー要求をデフォルト。バグトレーサビリティコードが容易に後に書き込みログを追加しています。
すなわち、6つのパラメータを受信するリクエストメソッド
- 方法:リクエストメソッド名、
- BASEURL:リクエストURL
- ヘッダ:要求ヘッダ
- 認証:認証情報
- ボディ:リクエストボディ
- test_case_name:要求インターフェース名は、主にログ・レコード・インタフェース名を記述するために使用されます
着信要求を選択された方法は、取得または要求がある場合にPOST要求は、GETメソッドは、URL、要求ヘッダー、要求の承認を提供する方法は、POSTリクエストのURL、要求ヘッダー、リクエストボディ、要求の承認を提供する場合。
要求処理なし、その後、JSON形式のプロセスを変換するために、既定の要求ヘッダー要求ヘッダー、要求の本体を使用する場合など、データに先立って行います。
ロギングのための操作要求を行う際に、記録フォーマット:
2019年10月11日11時20分57秒Log.py [ライン:30] INFO ------------------------------- -------------------------------------------------
2019 -10-11午前11時20分57秒Log.py [ライン:30] INFOの要求インタフェースの動作である:*******
2019年10月11日午前11時20分57秒Log.py [ライン:30] INFO要求インターフェイスアドレスは次のとおりです。http:// *********************************
2019年10月11日11:20 :57 Log.py [ライン:30]:*********データINFO要求であります