@PutMapping("/{id}")
    @RequiresPermissions("system:api:edit")
    public ShenyuAdminResult updateApi(@PathVariable("id")
                                       @Existed(message = "api is not existed",
                                               provider = ApiMapper.class) final String id,
                                       @Valid @RequestBody final ApiDTO apiDTO) {
        apiDTO.setId(id);
        return ShenyuAdminResult.success(apiService.createOrUpdate(apiDTO));
    }
@Test
    public void testUpdateApi() throws Exception {
        ApiDTO apiDTO = new ApiDTO();
        apiDTO.setContextPath("string");
        apiDTO.setApiPath("string");
        apiDTO.setHttpMethod(0);
        apiDTO.setConsume("string");
        apiDTO.setProduce("string");
        apiDTO.setVersion("string");
        apiDTO.setRpcType("/dubbo");
        apiDTO.setState(0);
        apiDTO.setApiOwner("string");
        apiDTO.setApiDesc("string");
        apiDTO.setApiSource(0);
        apiDTO.setDocument("document");
        apiDTO.setExt("ext");
        apiDTO.setId("123");
        when(SpringBeanUtils.getInstance().getBean(ApiMapper.class)).thenReturn(apiMapper);
        when(apiMapper.existed(apiDTO.getId())).thenReturn(true);
        given(this.apiService.createOrUpdate(apiDTO)).willReturn(ShenyuResultMessage.UPDATE_SUCCESS);
        this.mockMvc.perform(MockMvcRequestBuilders.put("/api/{id}", apiDTO.getId())
                        .contentType(MediaType.APPLICATION_JSON)
                        .content(GsonUtils.getInstance().toJson(apiDTO)))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.message", is(ShenyuResultMessage.UPDATE_SUCCESS)))
                .andReturn();

    }