Post by siaoleio on Mar 2, 2021 9:34:52 GMT
Hello eveyone,
Before I met the redfish specification, I know nothing about the odata protocol. I am a java programmer. Although I have written many restful style interfaces using the spring framework, they are very simple and never involve the various features mentioned in the odata specification (for example, no schema files, no control info in json payload, use irregular post requests to define action, does not support the wide range of query conditions such as $filter, $count...).
After I checked the related documents of redfish and odata many times (I'm sorry that my English is not very good, so even if I have read related documents, I may not understand them well), I think I still have questions about "Why OData" and how odata related features works in redfish. My questions may be messy, thank you very much for your patience.
1. Is the reason why redfish based on OData that "redfish provides restful interfaces, and Odata was the only suitable and powerful restful standard that could be referred to at the time"?
2. Is the ecology of Odata not that good? Our company use C lanaguage to develop the redfish server service, and use java as redfish client.
1) For C language, there seems no odata library to use. Therefore, it is difficult to implement query in odata such as $filter, $count.
2) For Java, the olingo library does not seem to be very popular, and there seem to be not many people following on git. In my opinion, it seems still difficult to implement query in odata such as $filter, $count in java.
What is the current status and prospects of odata? How important is it to redfish? Do we just think that redfish has borrowed many features of odata, so we don't need to pay too much attention to odata?
3*. For the redfish service, what is the main role of the metadata download link and schema files provided by the server? Are they mainly used by the offical Redfish-Service-Validator tools to check whether the redfish service is correct? For the client who does not use odata library and who are very familar with the redfish service, can they ignore these metadata link or schema files?
4. Why odata provide the json format csdl file? Just because json is more human-readable than xml format?
5. I can see many features of odata from redfish. For example:
1)Redfish provide the metadata download link, and service entry link. For user to validate the json payload and learn the structure of the resource tree.
2)redfish use the control info such as @odata.id, @odata.type to give client more infomation about the payload.
2)Redfish use similar concept about the HTTP header, body, method, url format, action.. mentioned in odata.
3)Redfish recommand the query conditions such as $filter, $count mentioned in Odata.
What is more should I to learn from the redfish or odata to have a better understanding about redfish?
5. If our team wants to make our restful interfaces (not limited to the redfish interface) to be more standardized, is it necessary to introduce some OData concepts(For example, provide the metadata and schema files)? In my opinion, if our restful API is not as important as redfish, we don’t have many customers, there is no need for us to deep learn the Odata protocol. Any suggestions?
With kindest regards.
Before I met the redfish specification, I know nothing about the odata protocol. I am a java programmer. Although I have written many restful style interfaces using the spring framework, they are very simple and never involve the various features mentioned in the odata specification (for example, no schema files, no control info in json payload, use irregular post requests to define action, does not support the wide range of query conditions such as $filter, $count...).
After I checked the related documents of redfish and odata many times (I'm sorry that my English is not very good, so even if I have read related documents, I may not understand them well), I think I still have questions about "Why OData" and how odata related features works in redfish. My questions may be messy, thank you very much for your patience.
1. Is the reason why redfish based on OData that "redfish provides restful interfaces, and Odata was the only suitable and powerful restful standard that could be referred to at the time"?
2. Is the ecology of Odata not that good? Our company use C lanaguage to develop the redfish server service, and use java as redfish client.
1) For C language, there seems no odata library to use. Therefore, it is difficult to implement query in odata such as $filter, $count.
2) For Java, the olingo library does not seem to be very popular, and there seem to be not many people following on git. In my opinion, it seems still difficult to implement query in odata such as $filter, $count in java.
What is the current status and prospects of odata? How important is it to redfish? Do we just think that redfish has borrowed many features of odata, so we don't need to pay too much attention to odata?
3*. For the redfish service, what is the main role of the metadata download link and schema files provided by the server? Are they mainly used by the offical Redfish-Service-Validator tools to check whether the redfish service is correct? For the client who does not use odata library and who are very familar with the redfish service, can they ignore these metadata link or schema files?
4. Why odata provide the json format csdl file? Just because json is more human-readable than xml format?
5. I can see many features of odata from redfish. For example:
1)Redfish provide the metadata download link, and service entry link. For user to validate the json payload and learn the structure of the resource tree.
2)redfish use the control info such as @odata.id, @odata.type to give client more infomation about the payload.
2)Redfish use similar concept about the HTTP header, body, method, url format, action.. mentioned in odata.
3)Redfish recommand the query conditions such as $filter, $count mentioned in Odata.
What is more should I to learn from the redfish or odata to have a better understanding about redfish?
5. If our team wants to make our restful interfaces (not limited to the redfish interface) to be more standardized, is it necessary to introduce some OData concepts(For example, provide the metadata and schema files)? In my opinion, if our restful API is not as important as redfish, we don’t have many customers, there is no need for us to deep learn the Odata protocol. Any suggestions?
With kindest regards.