我將Swagger添加到現有項目中以生成文檔。它大多工作得很好,但有一些邊緣案例產生了一些奇怪的文檔,我想知道是否有辦法處理它們。在Swagger中處理與仿製藥相關的特殊病例
一個Web方法將泛型類型的工作,看起來像這樣:
public abstract class AbstractServiceClass<T>
{
@ApiOperation(value="blah blah",tags={ "Generic methods"})
@Path("/doGenericThing")
@POST
@Consumes({ "application/xml", "application/json" })
@Produces({ "application/xml", "application/json" })
public T doGenericThing(@ApiParam T entity)
{
//...
}
}
@Api(value="/a.b.c")
@Path("a.b.c")
public class ConcreteService extends AbstractServiceClass<SomeEntityType>{
//...
}
當招搖生成ConcreteService
的文檔,它的方法doGenericThing
生成的文檔,但無法確定該參數類型爲SomeEntityType
。當它產生具體服務類的文檔時,是否有辦法告訴Swagger關於繼承方法的參數類型?
我有類似的情況,他的泛型方法只能在某些實體上工作。這些實體具有應用於它們的自定義註釋,並且代碼能夠確定給定的輸入是否可以處理。有沒有辦法讓swagger在某些標記爲@Api
的服務類中不爲繼承方法生成方法文檔?
我對Swagger比較陌生,我不確定它是否能夠處理這些場景。我願意添加映射文件,甚至可以擴展API(如果有合理的和有文檔記錄的方式來執行此操作)來添加此自定義功能。重寫這些類讓Swagger更容易消化,這可能不是一個好的選擇。
好的。我不確定它是否應該*起作用。我意識到類型擦除可能會導致某些情況下的問題,我不確定是否我的第一個問題是這些情況之一。我不知道其他人,但我似乎越來越頻繁地看到這些類型的通用Web服務。代碼庫比較小並且易於使用,但顯然這種通用方法會導致像Swagger這樣的工具出現問題。 – FrustratedWithFormsDesigner
是的,由於類型擦除,在運行時支持泛型非常困難。有技巧,但他們會影響實施技術。 – fehguy