Github user tbouron commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/810#discussion_r139111961
  
    --- Diff: 
rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/CatalogApi.java ---
    @@ -47,6 +47,9 @@
     import io.swagger.annotations.ApiResponse;
     import io.swagger.annotations.ApiResponses;
     
    +/** @deprecated since 0.12.0 use /bundle, /type, and /subtype */
    +// but we will probably keep this around for a while as many places use it
    +@Deprecated
    --- End diff --
    
    I strongly disagree with deprecating the entire `/catalog` endpoint. I 
think we should rather deprecate 
`/catalog/(entities|applications|policies|enrichers)` and add `/bundle`, 
`/type` and `/subtype` within `/catalog` as we have a "catalog" of bundles, 
types, etc. (that is effectivement what you did with the `/type` endpoint, by 
duplicating `/application`, `/entities`, etc) Promoting them to the root level 
feel way too loose.
    
    Also, what is the difference between `type` and `subtype`? It's not clear 
to me and it looks like a subtype is just a subset of type. If that is a case, 
why bother having a endpoint for this? Cannot we just have a filter on the 
`/type` endpoint?
    
    Regarding the bundle additions, the `POST /catalog/create` can already deal 
with bundles so I just reuse that. For the deletion, I would use the and 
`DELETE /catalog/bundles/<symbolicName>/<version>`.


---

Reply via email to