http put

    xiaoxiao2022-06-28  25

          HTTP中,PUT被定义为idempotent的方法。idempotent(幂等)是一个数学与计算机学概念,常见于抽象代数中。在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。

         昨日,终于打通了***和***的接口通信,借此机会,我把http put的接口文档定义、接口开发、接口调用整个过程和大家分享一下。

         接口文档定义:

         1.Released Serverhttp://***/***

         2.PUT/***/***

         3.Parameters 

    Type

    Name

    Description

    Schema

    Default

    Header

    Authorization

    required

    Basic BASE64(user password)

    string

     

    Body

    voiceCmdDTO

    required

    voiceCmdDTO

    VoiceCmdDTO

           

          VoiceCmdDTO

    Type

    Description

    Schema

    version

    required

    config version

    long

    updateTime

    required

    update timestamp in milliseconds

    long

    packages

    required

    packages of voice intentions

    <VoicePackageDTO>array

         VoicePackageDTO

    Type

    Description

    Schema

    pkg

    required

    package name

    string

    versionCode

    required

    package version

    long

    data

    required

    config data send to EUI

    string

         4.Responses

    HttpCode

    Description

    Schema

    200

    OK

    Lele voice

    intentionss

    400

    Bad request, pkg should not empty and versionCode should greater than 0

    DTO for

    transfering error

    message with a list

    of field errors.

    401

    Authentication required

    DTO for

    transfering error

    message with a list

    of field errors.

         5.Consumes  application/json      6.Produces application/json      

      接口开发:

    @ApiOperation(value = "Add voice intention commands", notes = "for open platform call, client authentication will be needed." , response= VoiceCmdDTO.class, code=201) @ApiResponses({ @ApiResponse(code = 401, message = "Authentication required", response = ErrorDTO.class), @ApiResponse(code=403, message = "No privilege", response = ErrorDTO.class) }) @ApiImplicitParam(name="Authorization", value = "Basic BASE64(user password)", dataType = "string", paramType ="header",required = true) @RequestMapping(value = "/voiceCmd", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<VoiceCmdDTO> voiceCmd(@RequestBody VoiceCmdDTO voiceCmdDTO) throws URISyntaxException { }

      接口调用:

    @Component public class VoiceCmdRequestUtil { @Value(value = "${voice-cmd.server}") private String host; private String detailUrl = "/v1/voiceCmd"; @Value(value = "${voice-cmd.user}") private String user; @Value(value = "${voice-cmd.password}") private String password; private RestTemplate restTemplate = new RestTemplate(); /** * 更新VoiceCmdDTO数据到*** * @param voiceCmdDTO RequestBody * @return HTTP Status Code */ public String updateVoiceCmdDTO(VoiceCmdDTO voiceCmdDTO) { String base64Creds = new String(Base64.encodeBase64((user + password).getBytes())); HttpHeaders headers = new HttpHeaders(); headers.add("Authorization", "Basic " + base64Creds); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<VoiceCmdDTO> entity = new HttpEntity<VoiceCmdDTO>(voiceCmdDTO, headers); ResponseEntity<String> response = restTemplate.exchange(host + detailUrl, HttpMethod.PUT, entity, String.class); return response.getStatusCode().toString(); } }      希望我的分享可以帮助进一步了解http put请求。
    转载请注明原文地址: https://ju.6miu.com/read-1124677.html

    最新回复(0)