/xmarket-server

基于springboot+spring mvc+springfox(swagger)+Spring data mongo的restful架构APP后端

Primary LanguageJava

xmarket APP的后端

swagger API文档

user


基于MVP+RxJava+Retrofit+Dagger2+Realm的校园交易市场APP


Server代码中的小实现

APP代码中的小实现

所用技术

  • springboot
  • springmvc: restful
  • spring data mongo: mongo框架
  • mongoDB: 数据库
  • spring Fox: 生成API在线文档
  • react.js: 后台管理ui
  • shiro: 权限引擎

注意事项

  • APP使用Androidtudio开发,后端采用idea。由于都使用了lombok,两个ide都需要安装lombok插件。
  • fresco自定义了ImagePipeline,并且访问时加上了证书,所以只能加载本服务器的图片。
  • 目前server的admin后台管理还没有完成,还没有进行mongo建立索引等优化。有时间会陆续加上。

其他配置

  • 服务器端访问路径

    1. APP,在AppConf中配置BASE_URL为服务器访问路径
    2. server,在application.yml中配置xmarket.address为服务器访问路径
  • 默认采用HTTPS协议,如果想使用http协议

    1. APP,将AppConf的enabled_ssl设置为false
    2. server,application.yml中将server.ssl.enabled设置为false
  • 服务器图片存储物理路径:

  • APP轮询频率:设置AppConf中的Message_Interval

  • APP每页商品加载的条数:设置AppConf中的size

  • 服务器图片存储路径: application.yml中设置xmarket.pic_home

https证书使用keytool生成,生成命令

keytool -genkey -alias xmarketkey -keyalg RSA -keysize 1024 -keypass sdjkasl465sd -validity 365 -keystore g:\home\xmarket.keystore -storepass 546sdhjdf  //生成证书

keytool -list  -v -keystore g:\home\xmarket.keystore -storepass 546sdhjdf //查看证书

keytool -export -alias xmarketkey -keystore g:\home\xmarket.keystore -file g:\home\xmarket.crt -storepass 546sdhjdf //导出证书

keytool -printcert -file g:\home\xmarket.crt //查看证书

API路径

public interface ApiConf {
    //-----------------------------用户相关---------------------------
    String login="api/v1/login";//用户登录+
    String auth="api/v1/auth";//用户获取token
    String register="api/v1/register";//用户注册+
    String register_next="api/v1/{userId}/phoneSchool/update";//用户注册下一步,设置学校,手机号+
    String update_user_pass="api/v1/users/{userId}/avatar/update";//修改用户密码
    String update_user_avatar="api/v1/users/{userId}/pass/update";//修改用户头像
    String get_user_team="api/v1/users/{userId}/teams/get";//获取用户志愿队
    String get_user_trades="api/v1/users/{userId}/trades/get";//获取用户在售,已卖,已买,捐赠,待确认的商品列表
    String get_user_messages="api/v1/users/{userId}/messages/get";//获取用户交易信息
    String donate_user_trade="api/v1/users/{userId}/trades/donate";//捐赠商品


    //----------------------------商品相关----------------------------
    String get_tag_trades="api/v1/trades/tag/{tagName}/get";//获取该分类下所有商品列表
    String get_school_trades="api/v1/trades/school/{schoolName}/get";//获取该学校的商品列表
    String get_team_trades="api/v1/trades/team/{teamName}/get";
    String get_trade="api/v1/trades/{tradeId}/get";//通过id获取商品的详细信息
    String create_trade="api/v1/trades/create";//发布商品


    //------------------------Hybrid 志愿队相关------------------------
    String create_team="api/v1/teams/create";//创建志愿队
    String get_school_teams="/api/v1/teams/{schoolName}/get";//?type=0获取该学校下的所有志愿队.0获取志愿队列表,1获取志愿队名称列表
    //------------------------Hybrid 学校相关--------------------------
    String get_schools="api/v1/schools/names/get";//获取学校名称列表
    //------------------------Hybrid 文件相关--------------------------
    String get_img="api/v1/file/img/{dir}/{picName:.+}";//获取图片资源
    //------------------------Hybrid 分类相关--------------------------
    String get_tags="api/v1/tags/get";//获取商品分类列表
    //------------------------Hybrid 交易相关--------------------------
    String create_deal="api/v1/deals/create";//创建交易
    String confirm_deal="api/v1/deals/{messageId}/update";//确认进行交易
}