blob: 75db7ab50be545e0ac98ab8dcf1470833af22cf4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.dubbo.apidocs.examples.api.impl;
import org.apache.dubbo.apidocs.annotations.ApiDoc;
import org.apache.dubbo.apidocs.annotations.ApiModule;
import org.apache.dubbo.apidocs.annotations.RequestParam;
import org.apache.dubbo.apidocs.examples.api.IQuickStartDemo;
import org.apache.dubbo.apidocs.examples.params.DemoParamBean4;
import org.apache.dubbo.apidocs.examples.params.InnerClassRequestBean;
import org.apache.dubbo.apidocs.examples.params.InnerClassResponseBean;
import org.apache.dubbo.apidocs.examples.params.QuickStartRequestBase;
import org.apache.dubbo.apidocs.examples.params.QuickStartRequestBean;
import org.apache.dubbo.apidocs.examples.params.QuickStartRequestBean2;
import org.apache.dubbo.apidocs.examples.params.QuickStartRespBean;
import org.apache.dubbo.config.annotation.DubboService;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* quick start demo implement.
*
* @date 2020/12/23 17:21
*/
@DubboService(version = "${demo.apiversion.quickstart}", group = "demoGroup")
@ApiModule(value = "quick start demo", apiInterface = IQuickStartDemo.class)
public class QuickStartDemoImpl implements IQuickStartDemo {
@ApiDoc(value = "quick start demo", version = "v0.1", description = "this api is a quick start demo", responseClassDescription="A quick star response bean")
@Override
public QuickStartRespBean quickStart(@RequestParam(value = "strParamxxx", required = true) List<DemoParamBean4> strParam, QuickStartRequestBean beanParam) {
return new QuickStartRespBean(200, "hello " + beanParam.getName() + ", " + beanParam.toString());
}
@ApiDoc(value = "quick start demo, request use generic.", version = "v0.1", description = "quick start demo, request use generic.", responseClassDescription="A quick star response bean")
@Override
public QuickStartRespBean quickStart2(Map<String, DemoParamBean4> beanList, QuickStartRequestBase<QuickStartRequestBean, InnerClassRequestBean<DemoParamBean4>> beanParam) {
return new QuickStartRespBean(200, "【" + beanParam.getMethod() + "】hello " + beanParam.getBody3() + ", " + beanParam.toString());
}
@ApiDoc(value = "multiple generic demo", version = "v0.1", description = "multiple generic demo.", responseClassDescription="A quick star response bean")
@Override
public QuickStartRespBean quickStart3(QuickStartRequestBean2 beanParam) {
return new QuickStartRespBean(200,"quickStart3, multiple generic demo");
}
@ApiDoc(value = "response use multiple generic bean", description = "response use multiple generic bean, but not set generic.", responseClassDescription="A quick star response bean")
@Override
public QuickStartRequestBase quickStart4(BigDecimal number, QuickStartRequestBean2 beanParam) {
QuickStartRequestBase response = new QuickStartRequestBase();
response.setBody(Arrays.asList("body2-1", "body2-2"));
response.setBody3("body3");
response.setMethod("test");
return response;
}
@ApiDoc(value = "internal class test", description = "internal class test.", responseClassDescription="Internal class test, response bean.")
@Override
public InnerClassResponseBean<List<String>> quickStart5(InnerClassRequestBean<List<String>> testBean) {
InnerClassResponseBean<List<String>> responseBean = new InnerClassResponseBean<>();
List<String> respT = new ArrayList<>(2);
respT.add("respT string1");
respT.add("respT string2");
responseBean.settResp(respT);
return responseBean;
}
}