インタフェース設計仕様
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例
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構造を保証します.
ページング・タイプのデータ.より多くロードできるかどうかを判断するために、合計バー数を返します.
リストクラスのデータインタフェースは、ページングを要求するかどうかにかかわらず、ページング、pageSize=Integerをサポートすることが望ましい.Maxでいいです.
2.3フィールドタイプ仕様
Stringタイプを統一的に使用します.場合によっては、Stringを統一的に使用すると、解析の失敗を防止し、タイプ変換操作を減らすことができます.
Booleanタイプ、1は0いいえ.クライアント処理時、非1はfalseです.
statusタイプフィールドは、1+から始まり、Booleanの0と1を区別します.「0」には2つの意味があり、(1)Booleanタイプのfalse、(2)デフォルトのstatus
2.4アップロード/ダウンロード
アップロード/ダウンロード、パラメータにファイルmd 5を追加し、整合性チェックに使用します(転送中にデータが失われる可能性があります).
2.5精度の喪失を避ける
単位を縮小してデータを保存します.例えば、お金は分単位、距離はメートル単位です.
3シンクライアント
クライアントはできるだけ論理を処理しない
クライアントが金額を処理しない
クライアント・パラメータ検証ルールは、インタフェースを介して返され、デフォルト・ルールが提供され、インタフェースが通じない場合はデフォルト・ルールが使用されます.
4拡張性
ピクチャ文案などは,チェックルールと同様にインタフェースを介して返され,デフォルトを提供する.
リストインタフェース
複数のbooleanはflagで置き換えることができます
5セキュリティ
so層、分からない
6互換性
バージョンの区別
7パフォーマンスの最適化
インタフェースをマージします.1ページ1インタフェース
フィールドの概要
不要なフィールドのクリーンアップ
画像の切り取り
ローカル・リフレッシュ.ページに必要なデータは、前のページで持参できます.
プリロード
インタフェースが規範化されると、穴が少なくなり、次の出会いを避けることができます.
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インタフェース
フィールドの概要
不要なフィールドのクリーンアップ
画像の切り取り
ローカル・リフレッシュ.ページに必要なデータは、前のページで持参できます.
プリロード