diff --git a/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java b/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
index ea9a83d..2584e89 100644
--- a/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
+++ b/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
@@ -176,8 +176,8 @@
      * @param appName app name
      * @throws JSONException parse json exception
      */
-    @DELETE
-    @Path("/{appName}/disable")
+    @POST
+    @Path("/{appName}/enable")
     public void enable(@PathParam("appName") final String appName) throws JSONException {
         if (appConfigService.load(appName).isPresent()) {
             disableAppService.remove(appName);
diff --git a/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java b/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
index 42cac9c..edaec0a 100644
--- a/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
+++ b/elastic-job-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
@@ -174,8 +174,8 @@
      * @param jobName job name
      * @throws JSONException parse json exception
      */
-    @DELETE
-    @Path("/{jobName}/disable")
+    @POST
+    @Path("/{jobName}/enable")
     public void enable(@PathParam("jobName") final String jobName) throws JSONException {
         Optional<CloudJobConfiguration> configOptional = configService.load(jobName);
         if (configOptional.isPresent()) {
diff --git a/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApiTest.java b/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApiTest.java
index 86c1d67..7018efd 100644
--- a/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApiTest.java
+++ b/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApiTest.java
@@ -111,7 +111,7 @@
         Mockito.when(getRegCenter().getChildrenKeys("/config/job")).thenReturn(Lists.newArrayList("test_job"));
         Mockito.when(getRegCenter().get("/config/app/test_app")).thenReturn(CloudAppJsonConstants.getAppJson("test_app"));
         Mockito.when(getRegCenter().get("/config/job/test_job")).thenReturn(CloudJsonConstants.getJobJson());
-        Assert.assertThat(RestfulTestsUtil.sentRequest("http://127.0.0.1:19000/api/app/test_app/disable", "DELETE"), Is.is(204));
+        Assert.assertThat(RestfulTestsUtil.sentRequest("http://127.0.0.1:19000/api/app/test_app/enable", "POST"), Is.is(204));
         Mockito.verify(getRegCenter()).get("/config/app/test_app");
         Mockito.verify(getRegCenter()).remove("/state/disable/app/test_app");
     }
diff --git a/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java b/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
index a1255d3..7bea51b 100644
--- a/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
+++ b/elastic-job-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
@@ -317,7 +317,7 @@
         Mockito.when(getRegCenter().getChildrenKeys("/config/job")).thenReturn(Lists.newArrayList("test_job"));
         Mockito.when(getRegCenter().get("/config/app/test_app")).thenReturn(CloudAppJsonConstants.getAppJson("test_app"));
         Mockito.when(getRegCenter().get("/config/job/test_job")).thenReturn(CloudJsonConstants.getJobJson());
-        Assert.assertThat(RestfulTestsUtil.sentRequest("http://127.0.0.1:19000/api/job/test_job/disable", "DELETE", "test_job"), Is.is(204));
+        Assert.assertThat(RestfulTestsUtil.sentRequest("http://127.0.0.1:19000/api/job/test_job/enable", "POST", "test_job"), Is.is(204));
         Mockito.verify(getRegCenter()).remove("/state/disable/job/test_job");
     }
 }
