On Mon, Apr 20, 2020 at 10:36 AM Darshana Gunawardana <darsh...@wso2.com>
wrote:

>
>
> On Thu, Nov 21, 2019 at 10:46 AM Malithi Edirisinghe <malit...@wso2.com>
> wrote:
>
>> Hi All,
>>
>> I'm wondering if we should classify error codes based on client errors in
>> user APIs,  server errors in user APIs, client errors in server APIs and
>> server errors in server APIs.
>> With such separation we are making things more complex.
>> The idea here is to just to have some convention, a consistent error code
>> model and to improve developer experience.
>> So for that I think the error code just need to reflect if it's a client
>> type error or a server type error and the relation with the API
>>
>> So my understanding is like below.
>> We have APIs that will be consumed by end users.
>> And we have APIs that are consumed by some privileged user or system user.
>> Underlying, each of these APIs would consume the OSGI services. So, a
>> specific OSGI service can be consumed either by an end user API,
>> privileged or system user API, or both.
>>
>> So, at the OSGI service layer, the classification we can do is only of
>> whether it is a client type error or a server type error.
>> Then at the REST API layer, client type errors will be identified and
>> reflected, subjected to sensitivity case by case.
>> Server type errors will be identified and reflected with very minimal
>> information or under a common message. That would be based on whether we
>> need to reflect such info to the client.
>> So it's the responsibility of the REST API layer to decide how to reflect
>> an error thrown from the OSGI service layer.
>>
>> Therefore, if we try to classify user type and server type client errors
>> and server errors in the OSGI layer, there will be a lot of confusion on
>> what type of code to use in the OSGI service layer.
>> Also, we will have to do additional error code mappings at the REST API
>> layer.
>>
>> Thus, I think, we just need to have a range defined for client type
>> errors and server type errors.
>> OSGI service layer will just throw based on that range.
>> Qualify the error code sent externally at the REST API layer. If the
>> exact error thrown from asn OSGI service needs be uniquely identified we
>> can have a qualifier at that level and remap only the qualified at REST API
>> layer, or have some component no or something included in the error code.
>> But other than that there's no necessity in re-mapping error codes coming
>> from OSGI layer at the REST API layer.
>> And it would be really easy to understand,
>> - what type of error it is,
>> - which could be the API throwing this error
>> at a glance.
>>
>> Thanks,
>> Malithi.
>>
>>
>> On Tue, Nov 5, 2019 at 4:01 PM Vihanga Liyanage <viha...@wso2.com> wrote:
>>
>>> Hi all,
>>>
>>> As per the discussion we had today, we've decided to do the following
>>> changes in server error codes.
>>>
>>> *Client errors in server APIs*
>>>
>>> For client errors in server APIs, we have allocated the range starting
>>> from 600.
>>>
>>> Eg: USR-600xx
>>>
>>> *Server Errors in server APIs*
>>>
>>> For server errors in server APIs, we have allocated the range starting
>>> from 650.
>>>
>>> Eg: USR-650xx
>>>
>>>
>>> Regards,
>>>
>>> Vihanga.
>>>
>>> On Mon, Nov 4, 2019 at 9:10 AM Vihanga Liyanage <viha...@wso2.com>
>>> wrote:
>>>
>>>> +1
>>>> But we should change the existing APIs if we're going with this.
>>>>
>>>> On Fri, Nov 1, 2019 at 11:32 AM Isura Karunaratne <is...@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi Sominda,
>>>>>
>>>>> I think it is better to start all the client errors with 400 (Ex
>>>>> USR-400xx) and server errors with 500 (Ex USR-500xx). In this way, we
>>>>> can get some understanding of the error by looking at the error code.
>>>>>
>>>>> Cheers,
>>>>> Isura.
>>>>>
>>>>> On Thu, Aug 29, 2019 at 2:44 PM Sominda Gamage <somi...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Currently, the REST APIs of Identity Server have different error
>>>>>> codes such as (20018, 20048, etc.). The error codes in this format have
>>>>>> less information regarding the cause or where it has occurred.
>>>>>>
>>>>>> Therefore, we would like to maintain the error codes which are used
>>>>>> in our REST APIs in one commonplace. Currently, we are standardizing 
>>>>>> error
>>>>>> codes along with their details and this is still a work in progress.
>>>>>>
>>>>>> According to this effort, sample error code will look like “
>>>>>> <Prefix>-<error-identifier-number>
>>>>>>
>>>>>> Eg: CQM-10005
>>>>>>
>>>>>> The Prefix (first part) indicates the component. In this case, CQM
>>>>>> indicates Challenge Questions Management.
>>>>>> The error-identifier-number (the second part of the error code)
>>>>>> reflects the numerical identifier for the error.
>>>>>>
>>>>>> For the rest APIs, we have defined 2 types of codes for both user and
>>>>>> server APIs.
>>>>>>
>>>>>>    -
>>>>>>
>>>>>>    Success codes: For successful operations
>>>>>>    -
>>>>>>
>>>>>>    Error codes: For error scenarios
>>>>>>    -
>>>>>>
>>>>>>       Client Errors
>>>>>>       -
>>>>>>
>>>>>>       Server Errors
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Success Codes*
>>>>>>
>>>>>> Despite the API type, all the success codes will start from 02000
>>>>>> onwards. To maintain consistency, a zero will be added at the beginning.
>>>>>>
>>>>>> Eg: USR-02001
>>>>>>
>>>>>> The above Success Code indicates a successful User Self Registration.
>>>>>>
>>>>>>
>>>>>> *Error Codes*
>>>>>>
>>>>>> With the introduction of API error standards, we wish to standardize
>>>>>> the error response from an API. Therefore, a sample API error response 
>>>>>> will
>>>>>> be as follows.
>>>>>>
>>>>>> {
>>>>>>
>>>>>> “code” : “some_error_code”,
>>>>>>
>>>>>> “Message” : “some_error_message”,
>>>>>>
>>>>>> “Description” : “some_error_description”,
>>>>>>
>>>>>> “traceID” : “correlation_id”
>>>>>>
>>>>>> }
>>>>>>
>>>>>> A correlationId has been introduced to log the error and send with
>>>>>> the response
>>>>>>
>>>>>>
>>>>>> *User API errors*
>>>>>>
>>>>>> User APIs has two types of errors.
>>>>>>
>>>>>>    1.
>>>>>>
>>>>>>    Client errors
>>>>>>    2.
>>>>>>
>>>>>>    Server errors
>>>>>>
>>>>>> *Client Errors in user APIs*
>>>>>>
>>>>>> For client errors in user APIs, we have allocated the range starting
>>>>>> from 100.
>>>>>>
>>>>>> Eg: USR-100xx
>>>>>>
>>>>>> *Server Errors in user APIs*
>>>>>>
>>>>>> For server errors in user APIs, we have allocated the range starting
>>>>>> from 100.
>>>>>>
>>>>>> Eg: USR-150xx
>>>>>>
>>>>>>
>>>>>> *Server API Errors*
>>>>>>
>>>>>> Server APIs has two types of errors.
>>>>>>
>>>>>>    1.
>>>>>>
>>>>>>    Client errors
>>>>>>    2.
>>>>>>
>>>>>>    Server errors
>>>>>>
>>>>>> *Client errors in server APIs*
>>>>>>
>>>>>> For client errors in server APIs, we have allocated the range
>>>>>> starting from 500.
>>>>>>
>>>>>> Eg: USR-500xx
>>>>>>
>>>>>> *Server Errors in server APIs*
>>>>>>
>>>>>> For server errors in server APIs, we have allocated the range
>>>>>> starting from 550.
>>>>>>
>>>>>> Eg: USR-550xx
>>>>>>
>>>>>>
>>>>>> This will be the new standardization for Rest API Success and Error
>>>>>> responses.
>>>>>>
>>>>>>
>>>>>> Thanks & Regards,
>>>>>>
>>>>>> Sominda.
>>>>>>
>>>>>> --
>>>>>> *Sominda Gamage* | Software Engineer| WSO2 Inc. <http://wso2.com/>
>>>>>> (M)+94 719873902 | (E) somi...@wso2.com
>>>>>> <https://wso2.com/signature>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> Architecture@wso2.org
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Isura Dilhara Karunaratne*
>>>>> Technical Lead | WSO2 <http://wso2.com/>
>>>>> *lean.enterprise.middleware*
>>>>> Email: is...@wso2.com
>>>>> Mob : +94 772 254 810
>>>>> Blog : https://medium.com/@isurakarunaratne
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Vihanga Liyanage
>>>>
>>>> Senior Software Engineer | WS*O₂* Inc.
>>>>
>>>> M : +*94710124103* | http://wso2.com
>>>>
>>>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>>>
>>>
>>>
>>> --
>>>
>>> Vihanga Liyanage
>>>
>>> Senior Software Engineer | WS*O₂* Inc.
>>>
>>> M : +*94710124103* | http://wso2.com
>>>
>>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>
>>
>> --
>> *Malithi Edirisinghe* | Technical Lead | WSO2 Inc.
>> (m) +94 718176807 | (w) +94 11 214 5345 | (e) malit...@wso2.com
>> GET INTEGRATION AGILE
>> Integration Agility for Digitally Driven Business
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>
>
> --
> Regards,
>
>
> *Darshana Gunawardana*Technical Lead
> WSO2 Inc.; http://wso2.com
>
> *E-mail: darsh...@wso2.com <darsh...@wso2.com>*
> *Mobile: +94718566859*Lean . Enterprise . Middleware
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>


-- 
Sathya Bandara
Senior Software Engineer
Blog: https://medium.com/@technospace
WSO2 Inc. http://wso2.com
Mobile: (+94) 715 360 421

<+94%2071%20411%205032>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to