MW API DOCUMENTATION

Get Term Condition

GET API_END_POINT/mw_term_condition/

Terminology:

  • MW: the short name of MagicWeaver

  • CP: the short name of Client Partner who is a business client of MagicWeaver

  • MW-X-SECRET: A long secret/password string, provided by MW. It is shared by MW and CP for authenticating sign-in and sign-up requests and passing user information from CP sides to MW with encryption.

  • JWT: an encrypted token generate with jwt module of Python or other software with same algorithm

  • MW-JWT: is generated by MW server, used for authenticating service access and identifying user

  • MW-X-JWT: is generated by MW server or/and CP server with exactly same algorithm and secret key string. MW and CP use it for identifying each other for data and information exchange. For example, MW uses it to identify a CP and authenticate service access.

  • CP-JWT: is generated by CP server, used for authenticating their service access and identifying user account

Sign up

POST API_END_POINT/sign_up/<partner>/

This endpoint allows you to get free cakes.

Path Parameters

Request Body

{ 
“status”: 200, 
   	“msg”: “successfully signed up”,
	“code”: 1000
}

Sign in from mw app

POST API_END_POINT/sign_in/<partner>

Path Parameters

Request Body

{ 
   “status”: 200, 
   “mw_jwt”: “MW-JWT string”,
   “mode”:  "NORMAL" | "DEVELOPER",
	 “code”: 1000
}

Sign in from CP app

POST API_END_POINT/sign_in/<partner>

Path Parameters

Request Body

{ 
   “status”: 200, 
   “mw_jwt”: “MW-JWT string”,
   “mode”:  "NORMAL" | "DEVELOPER",
	 “code”: 1000
}

Reset Password

POST API_END_POINT/request_reset_passwd/<partner>/

Path Parameters

Request Body

{ 
   “status”: 200, 
   “msg”: “A reset password email has been sent to your email: 
           useremail@xxx.com”,
   “code”: 1000
}

POST API_END_POINT/change_passwd/

Request Body

{
  	"msg": "Successfully updated your password.",
  	"status": 200,
	  “code”: 1000
}

Create Profile

POST API_END_POINT/create_profile/

Headers

Request Body

{
 "msg": "successfully created a profile",
  "status": 200
}

Delete profile

POST API_END_POINT/delete_profile_by_id/<profile_id>/

Path Parameters

Headers

{
  "msg": "successfully deleted profile",
  "status": 200,
  “code”: 1000
}

Update profile

POST API_END_POINT/update_profile/<profile_id>

Path Parameters

Headers

Request Body

{
  "profile_info": {
    "fit": "regular",
    "gender": "m",
    "height_guess": 1.7,
    "measure_config": "default",
    "name": "Chen test upload",
    "reference": "letter",
    "status": 200,
    "unit": "ft-in/lb",
    "weight_guess": 77.11
  },
  "reprocess": false,   
  "status": 200,
  “code”: 1000
}

Update measurements

POST API_END_POINT/update_measurements/<profile_id>/

Path Parameters

Headers

Request Body

 {
    "status": 200,
    "measurement": current measurement dict
    “code”:1000
  }	

Show 3D Model

GET API_END_POINTshow_3d_models_in_js_viewer_by_profile_id/<profile_id>/

Path Parameters

Headers

redirect url response

Ger Profile Measurements

POST API_END_POINT/get_measurements_by_profile_id/<profile_id>/

Path Parameters

Headers

Request Body

{
  "measurements": {
    "arm_length": 0.643,
    "back_shoulder": 0.478,
    "bicep": 0.444,
    "chest": 1.088,
    "height": 1.796,
    "hip": 1.091,
    "knee": 0.445,
    "neck": 0.434,
    "pants_outseam": 0.99,
    "stomach": 0.992,
    "waist": 1.036
 		 },
  "status": 200,
  “code”: 1000
}

Get Profile Info

GET API_END_POINT/get_profile_info_by_id/<profile_id>/

Path Parameters

Headers

{
  "profile_info": {
    "fit": "regular",
    "gender": "m",
    "height_guess": 1.75,
    "measure_config": "default",
    "profile_name": "我的裤子1",
    "reference": "letter",
    "unit": "cm/kg",
    "weight_guess": 80
  },
  "status": 200,
  “code”: 1000
}

List Profiles

GET API_END_POINT/list_profiles/app_list/<sort_method>/

Path Parameters

Headers

{
  "profiles": [
{
      "comments": "",
      "complete_time": [
        "2018-12-12",
        "14:36:56"
      ],
      "photos": {
                      "front_photo_small": front_photo_url,
          "side_photo_small": side_photo_url,

              },
      "process_status": true | false,
      "profile_id": "profile_2018-12-10_T_12-32-47",
      "profile_name": "test",
      "profile_process_status": "MW_COMPLETE" | "MW_FAILED"
                                "MW_INPROGRESS"| 

}
],
“status”: 200,
“code”: 1000
}

Get Single Profile

GET API_END_POINT/list_profiles/app_list/<sort_method>/

Path Parameters

Headers

{
  "profiles": {
    "complete_time": [
      "2019-04-28",
      "04:15:40"
    ],
    "photos": {
      "front_photo": "image path",
      "front_photo_medium": "image path",
      "front_photo_small": "image path",
      "side_photo": "image path",
      "side_photo_medium": "image path",
      "side_photo_small": "image path"
    },
    "process_status": true,
    "profile_id": "profile_2019-04-28_T_03-39-54",
    "profile_name": "test",
    "profile_process_status": "MW_COMPLETE"
  },
  "status": 200,
  “code”: 1000
}

GET API_END_POINT/get_app_config

Path Parameters

{
  "msg": {
    "app_notification_msg": "under maintenance due to amazon aws cn-north-1 server down",
    "app_notification_status": "True",
    "camera_pitch_constrain": 3.0,
    "camera_rotation_constrain": {
      "pitch": 3.0,
      "yaw": 3.0
    },
    "camera_yaw_constrain": 3.0,
    "js_viewer_url": {
      "cn": "ec2-52-81-30-241.cn-north-1.compute.amazonaws.com.cn:3132",
      "us": "ec2-54-144-93-102.compute-1.amazonaws.com:3132"
    },
    "measurement_translation": {
      "translation": {
        "en": {
          "measurement": {
            "ankle": "Ankle",
            "arm2": "Arm Length",
            "arm_absolute": "MW Arm Abs",
            "arm_length": "Sleeve Length",
            "back_jacket_length": "Back Jacket",
            "back_length": "Back Length",
            "back_shoulder": "Back Shoulder",
            "bicep": "Bicep",
            "calf": "Calf",
            "chest": "Chest",
            "front_shoulder": "Front Shoulder",
            "front_shoulder_to_stomach": "Front Shoulder to Stomach",
            "height": "Height",
            "highest_point_of_stomach": "Highest Point of Stomach",
            "hip": "Hip",
            "knee": "Knee",
            "nape_to_stomach": "Nape to Stomach",
            "neck": "Neck",
            "pants_inseam": "Inseam",
            "pants_outseam": "Outseam",
            "pants_u-rise": "U-Rise",
            "shoulder_absolute": "MW Shoulder Abs",
            "stomach": "Stomach",
            "stomach_to_back_waist": "Stomach to Back Waist",
            "stomach_to_front_waist": "Stomach to Front Waist",
            "thigh": "Thigh",
            "waist": "Natural Waist",
            "wrist": "Wrist"
          }
        },
        "zh": {
          "measurement": {
            "ankle": "脚踝围",
            "arm2": "臂长",
            "arm_absolute": "MW绝对臂长",
            "arm_length": "袖长",
            "back_jacket_length": "后衣长",
            "back_length": "后衣长",
            "back_shoulder": "后肩宽",
            "bicep": "上臂围",
            "calf": "小腿围",
            "chest": "胸围",
            "front_shoulder": "前肩宽",
            "front_shoulder_to_stomach": "前腰节长",
            "height": "身高",
            "highest_point_of_stomach": "中腰围",
            "hip": "臀围",
            "knee": "膝盖围",
            "nape_to_stomach": "后腰节长",
            "neck": "颈围",
            "pants_inseam": "裤子内缝长",
            "pants_outseam": "外裤长",
            "pants_u-rise": "通裆",
            "shoulder_absolute": "MW绝对肩宽",
            "stomach": "腹围",
            "stomach_to_back_waist": "后腰高",
            "stomach_to_front_waist": "前腰高",
            "thigh": "大腿跟围",
            "waist": "腰围",
            "wrist": "手腕围"
          }
        }
      }
    },
    "overlap_config": {
      "front": {
        "H_OFFSET": 0,
        "X_MARGIN": 0.05,
        "Y_OFFSET": 0.1
      },
      "side": {
        "H_OFFSET": 0,
        "Y_OFFSET": 0.1
      }
    }
  },
  "status": 200,
  “code”: 1000
}

Last updated