Hi Samiyuru,

That is really good. Thanks for the explanation.

What would happen if user implement a service with unsupported http
methods?
What will be the response when client sends a request for unsupported http
method resource? Can we give an error message in the deploy time?

Thanks,
Nuwan

On Mon, Dec 7, 2015 at 10:04 AM, Samiyuru Senarathne <samiy...@wso2.com>
wrote:

> Hi Nuwan,
>
> For unavailable HTTP methods for an existing path of a resource class, we
> respond with HTTP 405 method not allowed. This is same for unsupported HTTP
> methods by the framework (IE. PATCH, HEAD, etc.) as well as the unsupported
> HTTP methods by the resource class (IE. POST request is made to a resource
> method where only @GET is specified). For these two cases, a
> differentiation was not made because in the client's perspective both are
> same.
>
> Note: When a request is made to a path that is not available in a resource
> class, the response is 404 not found.
>
> Best Regards,
> Samiyuru
>
> On Sun, Dec 6, 2015 at 6:01 PM, Nuwan Pallewela <nuw...@wso2.com> wrote:
>
>> Hi Samiyuru,
>>
>> See the commented line.
>>
>> On Thu, Oct 15, 2015 at 2:02 PM, Samiyuru Senarathne <samiy...@wso2.com>
>> wrote:
>>
>>> Hi,
>>>
>>> In netty-http implementation all JAX-RS resource classes had to
>>> implement HttpHandler interface. This is a burden to JAX-RS resource class
>>> developers. In our implementation we removed that coupling and made it
>>> optional to implement HttpHandler interface thinking of developers who
>>> would need the support of the methods provided by HttpHandler.
>>>
>>>
>>> In netty-http all resource methods had to have HttpRequest and
>>> HttpResponder as the first two parameters which is an unwanted complexity.
>>> Several reasons for this were,
>>>
>>>    - In netty-http there was no way to send HTTP responses from
>>>    resource classes unless we have a reference to HttpResponder object.
>>>    netty-http does not support returning objects from resource methods to 
>>> send
>>>    HTTP responses.
>>>
>>>
>>>    - HttpRequest object is required to handle beyond basic requests
>>>    such as file uploads.
>>>
>>> In our JAX-RS runtime we removed the mandatory requirement to have the
>>> above two parameters and implemented the support for returning POJO from
>>> the resource methods to send HTTP responses. With this approach of sending
>>> HTTP responses, the requirement of  javax.ws.rs.core.Response type arises
>>> in order to customize the properties of the HTTP response such as HTTP
>>> status codes, HTTP headers etc. The default implementation for
>>> javax.ws.rs.core.Response is coming from jersey. But we cannot afford to
>>> have a jersey dependency. Therefore, our own javax.ws.rs.core.Response
>>> implementation was added to our JAX-RS runtime.
>>>
>>> With the above supports @Context annotation support was also implemented
>>> to inject HttpRequest and HttpResponder (currently supported) or other
>>> objects if someone needs them for additional operations.
>>>
>>>
>>> In our JAX-RS runtime, we implemented the support for @Produce, @Consume
>>> annotations in parallel to the POJO - request/response body mapping
>>> support. Currently request body -> POJO and POJO -> response body mapping
>>> is supported for xml and json requests/responses. With this the JAX-RS
>>> runtime can map endpoints to resource methods by considering the media
>>> types in HTTP request and  @Produce, @Consume values of resource methods.
>>> Also, the runtime has the ability to respond to requests with appropriate
>>> status codes without the knowledge of resource methods in occasions such as
>>> the requested media type is unsupported, invalid request body etc.
>>>
>>
>> Are we responding likewise for invalid requests with unsupported HTTP
>> method types?
>> Since we only support sub set of HTTP methods, it would be nice to have
>> appropriate status codes responses for unsupported HTTP methods too.
>>
>>>
>>>
>>> Best Regards,
>>> Samiyuru
>>> --
>>> Samiyuru Senarathne
>>> *Software Engineer*
>>> Mobile : +94 (0) 71 134 6087
>>> samiy...@wso2.com
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>> Thanks,
>> Nuwan
>>
>> --
>> ----------------------------------------------------------
>>
>> *Nuwan Chamara Pallewela*
>>
>>
>> *Software Engineer*
>>
>> *WSO2, Inc. *http://wso2.com
>> *lean . enterprise . middleware*
>>
>> Email   *nuw...@wso2.com <nuw...@wso2.com>*
>> Mobile  *+94719079739 <%2B94719079739>@*
>>
>>
>>
>
>
> --
> Samiyuru Senarathne
> *Software Engineer*
> Mobile : +94 (0) 71 134 6087
> samiy...@wso2.com
>



-- 
----------------------------------------------------------

*Nuwan Chamara Pallewela*


*Software Engineer*

*WSO2, Inc. *http://wso2.com
*lean . enterprise . middleware*

Email   *nuw...@wso2.com <nuw...@wso2.com>*
Mobile  *+94719079739@*
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to