Closed anantqs closed 12 months ago
In this document you will find a detailed description of all changes which constitute IIAs in version 6.3.0 and in version 7.0.0: https://owncloud.erasmuswithoutpaper.eu/index.php/s/zyNXSfU78NMtULf?path=%2F2023-08-01_Family_of_IIAs_7_0_0#pdfviewer
But what should be the response if Partner request the deleted get IIA.
The response should be exactly the same as in the case when the partner asks about the nonexistent object. See https://github.com/erasmus-without-paper/ewp-specs-api-iias/blob/stable-v7/endpoints/get.md#handling-of-invalid-parameters.
How can we implement both IIA 6.3 and 7.0 given that it's forbidden to have more than a version of the same API in the same environment?
We can implement and deploy in DEV 6.3.0, test it, than implemenent and deploy 7.0.0. If somebody does not want to test 6.3.0 separately, can go straight to 7.0.0. Yes, it is possible that there will be installations in DEV with 6.2.0 and the others with 6.3.0 or even 7.0.0. But to avoid problems we should not mix them in testing.
We can implement and deploy in DEV 6.3.0, test it, than implemenent and deploy 7.0.0. If somebody does not want to test 6.3.0 separately, can go straight to 7.0.0. Yes, it is possible that there will be installations in DEV with 6.2.0 and the others with 6.3.0 or even 7.0.0. But to avoid problems we should not mix them in testing.
Do you realize that this means that as soon as we start implementing 7.0.0 we have to dismiss any support to 6.x because we cannot anymore test any correction in DEV before upgrading in PROD? We will have a period of about six months without the possibility to solve any problem, little or huge, doesn't matter.
6.3.0 is part of 7.0.0.
6.3.0 is part of 7.0.0.
Could you kindly explain? In DEV and/or in PROD I can have 6.3.0 and 7.0.0 at the same time, but not 6.2.0 and 7.0.0. Do you mean this?
We are talking about DEV. In DEV you can have and test whatever you want. Knowing which tests make sense.
We are talking about DEV. In DEV you can have and test whatever you want. Knowing which tests make sense.
Ok, so in DEV we can have multiple versions at the same time and the registry MUST be able to support more than one version in dev. This means that isn't completely true that we must have only a version, but that in PROD we will have to expose only one at the same time. This is a huge difference that wasn't pointed out
Ok, so in DEV we can have multiple versions at the same time and the registry MUST be able to support more than one version in dev.
Number of versions does not matter for the registry.
This means that isn't completely true that we must have only a version, but that in PROD we will have to expose only one at the same time.
To avoid problems with partners trying to invoke incorrect versions in PROD we do not want to have many different versions in PROD at the same time.
In 6.3 specs, why its not mentioned empty response with 200 is considered as IIA deleted.
In 6.3 specs, why its not mentioned empty response with 200 is considered as IIA deleted.
Because deleted object is the same as nonexisting object so the normal error handling rules apply.
Because deleted object is the same as nonexisting object so the normal error handling rules apply.
And this erases month of discussions, when me and others were saying that there is no necessity to communicate that an IIA has been deleted...
You have to send CNR when you delete the object. That was agreed long time ago.
Because deleted object is the same as nonexisting object so the normal error handling rules apply.
And this erases month of discussions, when me and others were saying that there is no necessity to communicate that an IIA has been deleted...
Exactly. Someone wanted say DELETE, to prove a point. And now the specs don't even clearly say what DELETE is. Which means each provider is able to interpret in whatever way they want to. I just feel so stupid :)
You have to send CNR when you delete the object. That was agreed long time ago.
Of course, but as you have just stated, "deleted object is the same as nonexisting object so the normal error handling rules apply." Let's think that I send a CNR, but you loss it. Don't you implement a way to manage the nonexistent object and you keep on considering it as existing? And once you have implemented a way to detect that it is no more existent, do you still need my CNR?
Anyway, I will send a CNR in this case, but it's just to waste some lines of code
Anyway, I will send a CNR in this case, but it's just to waste some lines of code
I would not call it a waste, majority of CNRs reach the target and allow your partners to get this information faster.
Anyway, I will send a CNR in this case, but it's just to waste some lines of code
I would not call it a waste, majority of CNRs reach the target and allow your partners to get this information faster.
And if they don't, what do you do? Just complain for the unlucky event or do you implement something to manage this case?
If at any time I need to get access to this object I will call get and will find out that the object does not exist.
If at any time I need to get access to this object I will call get and will find out that the object does not exist.
So, exactly, once you have implemented this, what do you need CNR for? To save a second now and then?
So, exactly, once you have implemented this, what do you need CNR for? To save a second now and then?
Yes. I want to base my implementation on CNRs. Yes, I will always have some workaround. Is this something new? This is a general approach in EWP.
Yes. I want to base my implementation on CNRs. Yes, I will always have some workaround. Is this something new? This is a general approach in EWP.
If you like to duplicate code... If I have a valid method to manage a case, I use only this method avoiding to have different breaking point in my code. The CNR is useful when there may be the necessity for a prompt response, this is not the case for a removed object.
The CNR is useful when there may be the necessity for a prompt response, this is not the case for a removed object.
You don't know for sure. Anyway, to some extent your implementation is your business. But sending CNR when you delete the object is a must.
Anybody who wants to discuss details of implementation is welcome to the technical workshop to be held in Warsaw 3-4 of October. The information will be sent soon.
But sending CNR when you delete the object is a must
Of course. As a matter of fact, in this case my workaround consists in deleting nothing, leaving the unnecessary IIAs hanged on the network. May be, before or later, we will decide to use them
Can someone please help me understand what are the changes in IIA 6.3 which we need to implement. I see in IIA 6.3 its mentioned about delete feature which is needed to be implemented. But what should be the response if Partner request the deleted get IIA.