Commit 7a79d3a2 by 徐丛奇

添加文档内容

parent 785fd0ae
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/aidapidesign.iml" filepath="$PROJECT_DIR$/.idea/aidapidesign.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="a8412ebe-b9ac-46af-88a0-8cc78c5fa7f7" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
<ignored path="$PROJECT_DIR$/tmp/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="14_get_terminal_qrcode.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/v1/app/14_get_terminal_qrcode.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="283">
<caret line="20" column="0" lean-forward="true" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="03_upload_vision_data.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/v1/app/03_upload_vision_data.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="18" column="57" lean-forward="true" selection-start-line="17" selection-start-column="4" selection-end-line="18" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="15_terminal_remote_cmd.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/v1/app/15_terminal_remote_cmd.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="15_terminal_upload_file.md" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/v1/app/15_terminal_upload_file.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="283">
<caret line="19" column="0" lean-forward="true" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="13_get_ad.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/v1/app/13_get_ad.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="223">
<caret line="16" column="5" lean-forward="true" selection-start-line="16" selection-start-column="5" selection-end-line="17" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="05_vision_terminal_active.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/v1/app/05_vision_terminal_active.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="433">
<caret line="44" column="20" lean-forward="false" selection-start-line="44" selection-start-column="9" selection-end-line="44" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/app/01_login.md" />
<option value="$PROJECT_DIR$/v1/app/02_refresh_token.md" />
<option value="$PROJECT_DIR$/v1/app/06_register_jpush.md" />
<option value="$PROJECT_DIR$/v1/app/01_login.md" />
<option value="$PROJECT_DIR$/v1/app/07_vision_terminal_logout.md" />
<option value="$PROJECT_DIR$/v1/app/07_get_school_class_list.md" />
<option value="$PROJECT_DIR$/v1/app/12_get_bad_vision_report.md" />
<option value="$PROJECT_DIR$/v1/app/13_get_student_latest_visions.md" />
<option value="$PROJECT_DIR$/v1/app/11_get_student_detail.md" />
<option value="$PROJECT_DIR$/v1/app/12_get_student_latest_visions.md" />
<option value="$PROJECT_DIR$/v1/app/08_get_school_class_list.md" />
<option value="$PROJECT_DIR$/v1/app/10_get_student_list.md" />
<option value="$PROJECT_DIR$/v1/app/11_get_student_latest_visions.md" />
<option value="$PROJECT_DIR$/v1/app/12_get_student_visions.md" />
<option value="$PROJECT_DIR$/v1/app/05_vision_terminal_active.md" />
<option value="$PROJECT_DIR$/v1/app/15_terminal_remote_cmd.md" />
<option value="$PROJECT_DIR$/v1/app/03_upload_vision_data.md" />
<option value="$PROJECT_DIR$/v1/app/04_batch_upload_vision_data.md" />
<option value="$PROJECT_DIR$/v1/app/06_subscribe_jpush.md" />
<option value="$PROJECT_DIR$/v1/app/07_vision_terminal_unbind.md" />
<option value="$PROJECT_DIR$/v1/app/09_vision_terminal_latest_version.md" />
<option value="$PROJECT_DIR$/v1/app/13_get_ad.md" />
<option value="$PROJECT_DIR$/v1/app/14_get_terminal_qrcode.md" />
<option value="$PROJECT_DIR$/v1/app/15_terminal_upload_file.md" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="y" value="23" />
<option name="width" value="1440" />
<option name="height" value="830" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="aidapidesign" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="aidapidesign" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="v1" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/v1/app" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/v1" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
<method />
</configuration>
<configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test">
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
<node-interpreter value="project" />
<working-dir value="" />
<envs />
<scope-kind value="ALL" />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method />
</configuration>
<configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir="">
<method />
</configuration>
<configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
<option name="cucumberJsArguments" value="" />
<option name="executablePath" />
<option name="filePath" />
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run" />
<scripts />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
<node-interpreter>project</node-interpreter>
<node-options />
<working-directory />
<pass-parent-env>true</pass-parent-env>
<envs />
<ui />
<extra-mocha-options />
<test-kind>DIRECTORY</test-kind>
<test-directory />
<recursive>false</recursive>
<method />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="a8412ebe-b9ac-46af-88a0-8cc78c5fa7f7" name="Default" comment="" />
<created>1560419220470</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1560419220470</updated>
<workItem from="1560419222202" duration="47489000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="47489000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="1440" height="830" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23958333" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="processedProjectFiles" value="true" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/v1/app/12_get_bad_vision_report.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="29" lean-forward="false" selection-start-line="7" selection-start-column="29" selection-end-line="7" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/02_refresh_token.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="74">
<caret line="5" column="0" lean-forward="true" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/01_login.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="519">
<caret line="54" column="21" lean-forward="false" selection-start-line="54" selection-start-column="14" selection-end-line="54" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/08_get_school_class_list.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="399">
<caret line="52" column="50" lean-forward="true" selection-start-line="52" selection-start-column="50" selection-end-line="52" selection-end-column="50" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/11_get_student_detail.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1387">
<caret line="110" column="17" lean-forward="true" selection-start-line="83" selection-start-column="12" selection-end-line="110" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/11_get_student_latest_visions.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="56" column="15" lean-forward="true" selection-start-line="48" selection-start-column="22" selection-end-line="56" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/10_get_student_list.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="461">
<caret line="63" column="16" lean-forward="true" selection-start-line="63" selection-start-column="16" selection-end-line="63" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/03_upload_vision_data.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="18" column="57" lean-forward="true" selection-start-line="17" selection-start-column="4" selection-end-line="18" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/05_vision_terminal_active.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="433">
<caret line="44" column="20" lean-forward="false" selection-start-line="44" selection-start-column="9" selection-end-line="44" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/06_subscribe_jpush.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="19" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/12_get_student_visions.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="463">
<caret line="44" column="3" lean-forward="true" selection-start-line="44" selection-start-column="3" selection-end-line="44" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/09_vision_terminal_latest_version.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="20" column="40" lean-forward="false" selection-start-line="20" selection-start-column="40" selection-end-line="20" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/07_vision_terminal_unbind.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="149">
<caret line="10" column="10" lean-forward="true" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/04_batch_upload_vision_data.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="34" column="156" lean-forward="false" selection-start-line="34" selection-start-column="156" selection-end-line="34" selection-end-column="156" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/14_get_terminal_qrcode.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="283">
<caret line="20" column="0" lean-forward="true" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/15_terminal_remote_cmd.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/13_get_ad.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="223">
<caret line="16" column="5" lean-forward="true" selection-start-line="16" selection-start-column="5" selection-end-line="17" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/v1/app/15_terminal_upload_file.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="283">
<caret line="19" column="0" lean-forward="true" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
# 登录接口
和服务器对接的时候需要提供Token数据,该接口可以用于获取Token
## 修改记录
## 接口定义
/v1/login
POST
## Request
API请求参数
### Head
X-LoginType {String} 登录方式
X-Sign {String}* 签名信息, 客户端用公钥加密字符串: {deviceSN}\n{activeName}\n{timestamp}
X-DeviceInformation {String}* 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeName}
### Form Parameters
activeAccount {String}
activeCode {String}
location {String}
## Response
### Example
**Command**
##### Android
curl -X POST \
-H "X-WS-LoginType: School" \
-H "X-WS-Sign: csqQ4FKqnCmKDNoeHZu9lDkh7zxkKjXB2oQQhXV8WJwlIwIIgXZ1h8SDXNfZz3cRKJZW/5X8ZQYturQIk07qJ17+zBk4OhoaRLM27MbRQX6j/fzZ+82q/6q1qWswxCqcKnm/rKpIqH4/4s8CAgnBw+ZNKPcEN5rVaSLj88FYzpM=" \
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
http://localhost:8080/v1/login
**Output**
{
"data": {
"accessToken": "30932365e4a5440848fb8726a4bb47a7",
"expiredIn": 7200,
"refreshToken": "f8a03e9322d8400e5305d88a3a776b4b",
"refreshTokenExpiredIn": 2592000
},
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 刷新Token
当客户端Access Token失效的时候, 可以调用该接口获取新的Token, 该Token不需要提供Sign签名信息, 需要提供上次Login时获取到的RefreshToken
## 修改历史
## 接口定义
/v1/refresh_token
POST
## Request
API请求参数
### Head
X-WS-RefreshToken {String}* Refresh Token参数, 上次Login或者Refresh Token的时候返回的RefreshToken值
X-DeviceInformation {String}* 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeName}
## Response
### Example
**Command**
curl -X POST \
-H "X-RefreshToken: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
http://localhost:8080/v1/refresh_token
**Output**
{
"data": {
"accessToken": "23e36adebbac462041b14a3d4152063f",
"expiredIn": 7200,
"refreshToken": "d91414afb555425c721ea0f34a1160eb",
"refreshTokenExpiredIn": 2592000,
},
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 上传单条数据
## 修改历史
## 接口定义
/v1/upload_vision_data
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
uuid {String} 唯一ID ,由Android端生成
studentId {String} 学生ID
leftEye {float} 左视力
rightEye {float} 右眼视力
distance {int}
testType {int} 设备模式,1:学校模式、2:商城模式、3:海航模式
testTime {int}
## Response
### Example
**Command**
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Token: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
-d '{"uuid":"1DE5CAAA-DB46-419A-8162-EC853DAEA5CF","sid":"1111","eid":"2222","leftEye":1.0,"rightEye":1.2,"addType":1,"distance":3,"testTime":1560426091}' \
http://localhost:8080/v1/upload_vision_data
**Output**
{
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 上传批量数据
## 修改历史
## 接口定义
/v1/batch_upload_vision_data
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
[{"uuid":"1DE5CAAA-DB46-419A-8162-EC853DAEA5CF","studentId":"1111","leftEye":1.0,"rightEye":1.2,"testType":1,"distance":3,"testTime":1560426091}]
## Response
### Example
**Command**
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Token: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
-d '[{"uuid":"1DE5CAAA-DB46-419A-8162-EC853DAEA5CF","studentId":"1111","leftEye":1.0,"rightEye":1.2,"testType":1,"distance":3,"testTime":1560426091}]'
http://localhost:8080/v1/batch_upload_vision_data
**Output**
{
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 激活设备
设备与机构进行绑定
## 修改记录
## 接口定义
/v1/vision_terminal_active
POST
## Request
API请求参数
### Head
### Form Parameters
activeAccount {String} RSA加密
activeCode {String} RSA加密
deviceSn {String}
location {String}
## Response
### Example
**Command**
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/vision_terminal_active
**Output**
{
"data": {
"equipmentId": "11111",
"activationTime": 1560426091,
"schoolId": "12222",
"testType": 1,
"orgName": "北京市昌平实验小学",
"contacts": "jack",
"address": "",
"phone": "18910265201",
"printQrCodeStatus": 1,
"note1": "",
"note2": ""
},
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 注册jpush服务
注册设备,接收推送服务
## 修改记录
## 接口定义
/v1/subscribe_jpush
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
jpushToken {String} 设备Token
## Response
该接口返回Token信息
### Example
**Command**
##### Android
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx" \
-G \
--data-urlencode 'jpushToken=xxxxxx' \
http://localhost:8080/v1/subscribe_jpush
**Output**
{
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 解除设备绑定
## 修改记录
## 接口定义
/v1/vision_terminal_unbind
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
activeAccount {String}
activeCode {String}
## Response
### Example
**Command**
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/vision_terminal_unbind
**Output**
{
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 获取学校的年级和班级信息
## 修改记录
## 接口定义
/v1/get_school_grade_and_class
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeAccount}
X-Sign {String} rsa(activeAccount+'_'+timestamp) 加密
### Form Parameters
schoolId {String}
## Response
### Example
**Command**
##### Android
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/get_school_grade_and_class
**Output**
{
"errno": 200,
"data": {
"gradeList": [
{
"gradeId": 11,
"gradeName": "6",
"list": [
{
"classId": 1824,
"className": "3",
"orderlist": 0
},
{
"classId": 1823,
"className": "2",
"orderlist": 0
}
]
}
]
},
"msg": "success"
}
\ No newline at end of file
# 获取最近软件版本
## 修改记录
## 接口定义
/v1/vision_terminal_latest_version
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
服务端根据appVersion判断是否需要升级(单设备升级或全设备升级)
### Form Parameters
## Response
### Example
**Command**
##### Android
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/vision_terminal_latest_version
**Output**
{
"errno": 200,
"data": {
"versionCode": "250",
"address": "https://static-t.app.iouou.cn/2019/uF9rXsD2PJY4bkNFSzIVbmVrvCUrtLWmV0DgNw3l.apk",
"versionName": "ad_v2.1.2.0",
"content": "测试测试测试"
},
"msg": "success"
}
\ No newline at end of file
# 获取学生信息
## 修改记录
## 接口定义
/v1/get_student_list
GET
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeAccount}
X-Sign {String} rsa(activeAccount+'_'+timestamp) 加密
### Form Parameters
schoolId {int} 必选
page {int} 默认:1
limit {int} 默认:20
## Response
### Example
**Command**
curl -X GET \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
-G \
--data-urlencode 'schoolId=111111&page=1&limit=20' \
http://localhost:8080/v1/get_student_list
**Output**
{
"errno": 200,
"msg": "success",
"data": {
"total": 100,
"list":[
{
"studentId": 50687,
"studentName": "郑笑莹",
"gender": 2,
"age": 0,
"schoolId": 160,
"gradeId": 260,
"classId": 1439,
"left_eye": "4.3",
"right_eye": "4.4",
"studentNumber": "",
"distance": 0,
"updated_at": "2019-04-23 16:01:51"
}
]
}
}
\ No newline at end of file
# 获取学生最近三次数据
## 修改记录
## 接口定义
/v1/get_student_latest_visions
GET
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeAccount}
X-Sign {String} rsa(activeAccount+'_'+timestamp) 加密
### Form Parameters
studentIds {String}
count {int} 默认 3
## Response
### Example
**Command**
##### Android
curl -X GET \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/get_student_latest_visions
**Output**
{
"errno": 200,
"data": [
{
"studentId": 50687,
"list": [
{
"vid": 27728,
"leftEye": "4.3",
"rightEye": "4.4",
"distance": 3,
"addTime": 1556006511
}
]
},
{
"studentId": 50688,
"list": [
{
"vid": 27729,
"leftEye": "5.1",
"rightEye": "5.1",
"distance": 3,
"addTime": 1556006511
}
]
}
],
"msg": "success"
}
\ No newline at end of file
# 获取学生最近三次数据
## 修改记录
## 接口定义
/v1/get_student_visions
GET
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osName}/{osVersion}/{appVersion}/{deviceSN}/{activeAccount}
X-Sign {String} rsa(activeAccount+'_'+timestamp) 加密
### Form Parameters
studentId {String}
page {int} 默认 1
limit {int} 默认 20
## Response
### Example
**Command**
##### Android
curl -X GET \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/get_student_visions
**Output**
{
"errno": 200,
"data": [
{
"vid": 27728,
"leftEye": "4.3",
"rightEye": "4.4",
"distance": 3,
"addTime": 1556006511
}
],
"msg": "success"
}
\ No newline at end of file
# 获取广告信息
## 修改记录
## 接口定义
/v1/get_ad
GET
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
## Response
### Example
**Command**
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/get_ad
**Output**
{
"errno": 200,
"data": {
"qrCodeUrl": "http://weixin.qq.com/q/02j2sR9QJ4f2h1aRvgNt1Q"
},
"msg": "success"
}
\ No newline at end of file
# 获取商城版二维码
##
## 接口定义
/v1/get_terminal_qrcode
GET
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
## Response
### Example
**Command**
curl -X POST \
-H "X-DeviceInformation: 5ebfdbca1a5d4dbd4a6cc8e835276779" \
-H "X-Sign: xxxxxxxx"
http://localhost:8080/v1/get_terminal_qrcode
**Output**
{
"errno": 200,
"data": {
"qrCodeUrl": "http://weixin.qq.com/q/02j2sR9QJ4f2h1aRvgNt1Q"
},
"msg": "success"
}
\ No newline at end of file
# 上传批量数据
## 修改历史
## 接口定义
/v1/terminal_remote_cmd
POST
## Request
API请求参数
### Head
### Form Parameters
equipmentId {String} RSA
## Response
cmd 上传命令
backup 上传备份数据 params 月份,如果为空就是当前月份,允许多个月份上传用逗号隔开(6,7,8)上传六七八月份的数据
log 上传log params 月份,同上
### Example
**Command**
curl -X POST \
-H "X-Sign: xxxxxxxx"
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
-G \
--data-urlencode 'deviceSn=111111' \
http://localhost:8080/v1/terminal_remote_cmd
**Output**
{
"data": {
"cmd": "backup",
"params": "1",
"cmdTime":18910265201,
"serverTime":18910265201,
},
"errno": 200,
"msg": "success"
}
\ No newline at end of file
# 上传文件到服务器
## 修改历史
## 接口定义
/v1/terminal_upload_file
POST
## Request
API请求参数
### Head
X-DeviceInformation {String} 设备信息, 格式为: {osVersion}/{appVersion}/{equipmentId}
X-Sign {String} rsa(timestamp) 加密
### Form Parameters
dataType {String} backup,log
file {String} gzip
## Response
### Example
**Command**
curl -X POST \
-H "X-Sign: xxxxxxxx"
-H "X-DeviceInformation: Android%2F5.0%2F4.8%2Fxxxxx%2FtestName" \
-G \
http://localhost:8080/v1/terminal_upload_file
**Output**
{
"errno": 200,
"msg": "success"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment