On Fri, Oct 19, 2018 at 10:30 AM Uvindra Dias Jayasinha <[email protected]> wrote:
> Here is my take on this. When I originally designed the schema I wasn't > taking into consideration any of the practical implications associated with > API resources being saved and retrieved at DB level. But now that we are at > implementation stage some of these implications are much more clearer now. > > The AM_API_RESOURCES is a generic API resource table(For storing all file > based resources associated with APIs). It will be storing the Swagger file, > Ballerina file and documentation associated with the API. > > The AM_API_DOC_META_DATA table is specialized to store additional meta > data only associated with documentation. > > Practically we need to do two calls for document uploads and adding meta > data because we are dealing with two different content > types(application/json for meta data and multipart/form-data for the file). > > All files have a name associated with them so it makes sense to have the > file name in the AM_API_RESOURCES table. I don't think its a good idea to > have a NULL value in a column that we are going to update later, this could > lead to all kinds of complications that we will need to handle at code > level. So its better to have the file name in AM_API_RESOURCES where we can > ensure that we always have a valid name at the time of upload. It is also > very easy for us to enforce that a file name for a given type does not get > duplicated with a table level constraint if we go with this option. > > Joining between two tables like this in case we need to get the file name > is trivial so I don't think we should let that affect us coming up with the > best possible solution. > +1 it's a not good practice to add record which will update from null to some value cause of update going for another table. > > So Im +1 for option 2. WDYT? > > On Thu, 18 Oct 2018 at 17:31, Mushthaq Rumy <[email protected]> wrote: > >> Adding @dev-wso2 <[email protected]> >> >> On Thu, Oct 18, 2018 at 5:25 PM Nuwan Dias <[email protected]> wrote: >> >>> Please discuss technical problems externally. >>> >>> On Thu, Oct 18, 2018 at 3:44 PM Mushthaq Rumy <[email protected]> wrote: >>> >>>> Hi All, >>>> >>>> While I was implementing the view page for API document (File) I came >>>> across an issue where we get the file name as null when using the >>>> micro-service to get the content of the the API document. >>>> While analyzing, when adding a file as an API document, I found out >>>> that first we save only the doc metadata and then we save the file content >>>> using a second call. >>>> >>>> After analyzing the DB scripts I figured out that the fileName is >>>> stored in AM_API_DOC_META_DATA table and the content is stored in >>>> AM_API_RESOURCES. So during the first call we do not have the file name and >>>> it is saved as null. During the second call the fileName is passed to the >>>> micro-service but it is not stored anywhere. Hence, the fileName is null >>>> when we get the content of the file. So to solve this issue, I thought of >>>> two solutions. >>>> >>>> 1. During the second call while adding a file document for API as we >>>> get the FileName to the micro-service we can retrieve the document metadata >>>> using the documentId and update the fileName apart from saving the content. >>>> Hence, it will be available when retrieving the content. >>>> >>>> 2. We can change the fileName field from AM_API_DOC_META_DATA to >>>> AM_API_RESOURCES as the content of the document is stored in this table. >>>> And while saving the content we can save it with the fileName. Hence, it >>>> will be available when retrieving the content. >>>> >>>> IMO as option 1 will have more DB calls, option 2 would be the >>>> preferred solution. >>>> >>>> Appreciate your valuable inputs. >>>> >>>> Thanks & Regards, >>>> Mushthaq >>>> -- >>>> Mushthaq Rumy >>>> *Senior Software Engineer* >>>> Mobile : +94 (0) 779 492140 >>>> Email : [email protected] >>>> WSO2, Inc.; http://wso2.com/ >>>> lean . enterprise . middleware. >>>> >>>> <http://wso2.com/signature> >>>> >>> >>> >>> -- >>> *Nuwan Dias* | Director | WSO2 Inc. >>> (m) +94 777 775 729 | (e) [email protected] >>> [image: Signature.jpg] >>> >> >> >> -- >> Mushthaq Rumy >> *Senior Software Engineer* >> Mobile : +94 (0) 779 492140 >> Email : [email protected] >> WSO2, Inc.; http://wso2.com/ >> lean . enterprise . middleware. >> >> <http://wso2.com/signature> >> > > > -- > Regards, > Uvindra > > Mobile: 777733962 > -- *Harsha Kumara* Associate Technical Lead, WSO2 Inc. Mobile: +94775505618 Email: [email protected] Blog: harshcreationz.blogspot.com GET INTEGRATION AGILE Integration Agility for Digitally Driven Business
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
