インタフェース設計仕様

9679 ワード

文書ディレクトリ
  • インタフェース設計仕様
  • インタフェース例
  • 2基本規範
  • 2.1共通パラメータ
  • 2.2応答データ
  • 2.3フィールドタイプ仕様
  • 2.4アップロード/ダウンロード
  • 2.5精度損失回避
  • 3シンクライアント
  • 4拡張性
  • 5セキュリティ
  • 6互換性
  • 7性能最適化
  • インタフェース設計仕様
    インタフェースが規範化されると、穴が少なくなり、次の出会いを避けることができます.
    1インタフェースの例
    インタフェースの説明:ユーザーがログインに成功した後、またはパーソナルセンターに入ると、ユーザー情報が取得されます.
    URI
    方法
    /userinfo
    GET
    要求パラメータ
    名前
    必須
    コメント
    id
    はい
    ユーザid
    レスポンスパラメータ
    名前
    を選択します.
    コメント
    id
    String
    ユーザid
    name
    String
    名前、例:張三
    age
    String
    年齢、例:20
    json例
    {
        "code":200,
        "msg":"  ",
        "time":"1482213602000",
        "data": {
            "id":"1001",
            "name":"  ",
            "age":"20"
        }
    }
    

    2基本仕様
    2.1共通パラメータ
    共通パラメータは、各インタフェースが携帯するパラメータであり、各インタフェースの基本情報を記述し、headerまたはurlパラメータに統計またはその他の用途に配置します.たとえば
    フィールド名
    説明
    version
    クライアントバージョン.1.0.0
    token
    ログイントークン
    os
    携帯電話のシステムバージョン.12
    from
    リクエストソース.android/ios/h5
    screen
    携帯サイズ.1080*1920
    model
    モデル.IPhone7
    net
    ネットワークの状態.wifi
    2.2応答データ
    応答データ統一フォーマット:code、msg、data.
    Arrayタイプデータ.listフィールドでdataのObject構造を保証します.
    ページング・タイプのデータ.より多くロードできるかどうかを判断するために、合計バー数を返します.
    // object    
    {
        "code":1,
        "msg":"  ",
        "data":{}
    }
    // array    。
    {
        "code":1,
        "msg":"  ",
        "data":{
            "list":[]
        }
    }
    //       。
    {
        "code":1,
        "msg":"  ",
        "data":{
            "list":[]
            "total":"10"
        }
    }
    

    リストクラスのデータインタフェースは、ページングを要求するかどうかにかかわらず、ページング、pageSize=Integerをサポートすることが望ましい.Maxでいいです.
    2.3フィールドタイプ仕様
    Stringタイプを統一的に使用します.場合によっては、Stringを統一的に使用すると、解析の失敗を防止し、タイプ変換操作を減らすことができます.
    Booleanタイプ、1は0いいえ.クライアント処理時、非1はfalseです.
    if("1".equals(isVip)){
        
    }else{
        
    }
    

    statusタイプフィールドは、1+から始まり、Booleanの0と1を区別します.「0」には2つの意味があり、(1)Booleanタイプのfalse、(2)デフォルトのstatus
    2.4アップロード/ダウンロード
    アップロード/ダウンロード、パラメータにファイルmd 5を追加し、整合性チェックに使用します(転送中にデータが失われる可能性があります).
    2.5精度の喪失を避ける
    単位を縮小してデータを保存します.例えば、お金は分単位、距離はメートル単位です.
    3シンクライアント
    クライアントはできるだけ論理を処理しない
    クライアントが金額を処理しない
    クライアント・パラメータ検証ルールは、インタフェースを介して返され、デフォルト・ルールが提供され、インタフェースが通じない場合はデフォルト・ルールが使用されます.
    4拡張性
    ピクチャ文案などは,チェックルールと同様にインタフェースを介して返され,デフォルトを提供する.
    リストインタフェース
    //     
    {
        "name": "  ",
        "sex": " ",
        "age": "20 ",
        "nickName": "  "
    }
    //     
    {
        "userInfos":[
        {
            "key":"  ",
            "value":"  "
        },{
            "key":"  ",
            "value":" "
        },{
            "key":"  ",
            "value":"20 "
        },{
            "key":"  ",
            "value":"  "
        }]
    }
    

    複数のbooleanはflagで置き換えることができます
    {
        "flag":"7" //    :111,        boolean  
    }
    
    long flag = 7;
    System.out.println("bit="+Long.toBinaryString(flag));
    System.out.println("   ="+((flag&1)==1));
    System.out.println("   ="+((flag&2)==1));
    System.out.println("   ="+((flag&4)==1));
    

    5セキュリティ
    so層、分からない
    6互換性
    バージョンの区別
    7パフォーマンスの最適化
    インタフェースをマージします.1ページ1インタフェース
    フィールドの概要
    不要なフィールドのクリーンアップ
    画像の切り取り
    ローカル・リフレッシュ.ページに必要なデータは、前のページで持参できます.
    プリロード