+1 for having all API doc related data in a single table and rename the table as DOCS.
Thanks & Regards, Mushthaq On Tue, Oct 23, 2018 at 10:07 AM Uvindra Dias Jayasinha <uvin...@wso2.com> wrote: > @Bhathiya Jayasekara <bhath...@wso2.com> > yes, this is also an option. In reality though very few customers upload > lots of additional docs. We could just rename DOC_META_DATA table to DOCS > and store the docs in that table itself. So at the very minimum we have a > swagger and ballerina definition per an API stored in the RESOURCES table. > > Can we make a call on this soon? Implementation is getting delayed because > of this. > > On Mon, 22 Oct 2018 at 21:08, Bhathiya Jayasekara <bhath...@wso2.com> > wrote: > >> This looks ok. Btw, I was wondering if it's a good idea to have all files >> (swaggers, wsdls, docs etc.) in a single table. Won't that make the table >> grow faster and make querying slower? How about keeping a separate table >> for this? Then we can have a foreign key as well. >> >> Thanks, >> Bhathiya >> >> On Mon, Oct 22, 2018 at 2:57 PM Uvindra Dias Jayasinha <uvin...@wso2.com> >> wrote: >> >>> +1, CONTENT is fine >>> >>> On Mon, 22 Oct 2018 at 14:45, Mushthaq Rumy <musht...@wso2.com> wrote: >>> >>>> Hi Uvindra, >>>> >>>> Please find the data types below >>>> >>>> *AM_API_DOC_META_DATA* >>>> API_ID (This will be a foreign key referred to AM_API table) >>>> VARCHAR(255) >>>> RESOURCE_ID VARCHAR(255) >>>> DOC_CONTENT VARCHAR(1024) >>>> >>>> *AM_API_RESOURCES* >>>> RESOURCE_NAME VARCHAR(255) >>>> >>>> And I think we can change it DOC_CONTENT to CONTENT . >>>> WDYT? >>>> >>>> Thanks & Regards, >>>> Mushthaq >>>> >>>> On Mon, Oct 22, 2018 at 2:35 PM Uvindra Dias Jayasinha < >>>> uvin...@wso2.com> wrote: >>>> >>>>> HI Mushtaq, >>>>> >>>>> Can you provide the data types of the columns so that this is more >>>>> clear? I believe that DOC_CONTENT should be a VARCHAR, in that case better >>>>> to call it something like SHORT_CONTENT, since this communicates that it >>>>> is >>>>> meant to share relatively short text values such as URL and inline text. >>>>> The name DOC_CONTENT is misleading and might suggest we can store larger >>>>> documents in this column. >>>>> >>>>> On Mon, 22 Oct 2018 at 14:02, Mushthaq Rumy <musht...@wso2.com> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> We had an internal discussion and decided to do some modifications in >>>>>> the DB Schema related to API Docs (AM_API_RESOURCES and >>>>>> AM_API_DOC_META_DATA). We will be removing the foreign key constraint >>>>>> added >>>>>> to the AM_API_DOC_META_DATA table as it it has a primary key referred to >>>>>> the primary key of AM_API_RESOURCES which is not a good practice. >>>>>> >>>>>> And the following columns will be added to the respective tables. >>>>>> >>>>>> *AM_API_DOC_META_DATA* >>>>>> API_ID (This will be a foreign key referred to AM_API table) >>>>>> RESOURCE_ID >>>>>> DOC_CONTENT >>>>>> >>>>>> *AM_API_RESOURCES* >>>>>> RESOURCE_NAME >>>>>> >>>>>> So the content of INLINE and URL of API documents will be saved in >>>>>> *AM_API_DOC_META_DATA >>>>>> (*DOC_CONTENT column*) *and content of FILE of API documents will be >>>>>> saved in *AM_API_RESOURCES *which will have a reference in >>>>>> *AM_API_DOC_META_DATA >>>>>> (*RESOURCE_ID column*)*. >>>>>> >>>>>> Thanks & Regards, >>>>>> Mushthaq >>>>>> >>>>>> >>>>>> On Fri, Oct 19, 2018 at 9:23 PM Harsha Kumara <hars...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Oct 19, 2018 at 10:30 AM Uvindra Dias Jayasinha < >>>>>>> uvin...@wso2.com> 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 <musht...@wso2.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Adding @dev-wso2 <dev@wso2.org> >>>>>>>>> >>>>>>>>> On Thu, Oct 18, 2018 at 5:25 PM Nuwan Dias <nuw...@wso2.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Please discuss technical problems externally. >>>>>>>>>> >>>>>>>>>> On Thu, Oct 18, 2018 at 3:44 PM Mushthaq Rumy <musht...@wso2.com> >>>>>>>>>> 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 : musht...@wso2.com >>>>>>>>>>> WSO2, Inc.; http://wso2.com/ >>>>>>>>>>> lean . enterprise . middleware. >>>>>>>>>>> >>>>>>>>>>> <http://wso2.com/signature> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Nuwan Dias* | Director | WSO2 Inc. >>>>>>>>>> (m) +94 777 775 729 | (e) nuw...@wso2.com >>>>>>>>>> [image: Signature.jpg] >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Mushthaq Rumy >>>>>>>>> *Senior Software Engineer* >>>>>>>>> Mobile : +94 (0) 779 492140 >>>>>>>>> Email : musht...@wso2.com >>>>>>>>> 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: hars...@wso2.coim >>>>>>> Blog: harshcreationz.blogspot.com >>>>>>> >>>>>>> GET INTEGRATION AGILE >>>>>>> Integration Agility for Digitally Driven Business >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Mushthaq Rumy >>>>>> *Senior Software Engineer* >>>>>> Mobile : +94 (0) 779 492140 >>>>>> Email : musht...@wso2.com >>>>>> WSO2, Inc.; http://wso2.com/ >>>>>> lean . enterprise . middleware. >>>>>> >>>>>> <http://wso2.com/signature> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> Uvindra >>>>> >>>>> Mobile: 777733962 >>>>> >>>> >>>> >>>> -- >>>> Mushthaq Rumy >>>> *Senior Software Engineer* >>>> Mobile : +94 (0) 779 492140 >>>> Email : musht...@wso2.com >>>> WSO2, Inc.; http://wso2.com/ >>>> lean . enterprise . middleware. >>>> >>>> <http://wso2.com/signature> >>>> >>> >>> >>> -- >>> Regards, >>> Uvindra >>> >>> Mobile: 777733962 >>> >> >> >> -- >> *Bhathiya Jayasekara* >> *Technical Lead,* >> *WSO2 inc., http://wso2.com <http://wso2.com>* >> >> *Phone: +94715478185* >> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >> <http://www.linkedin.com/in/bhathiyaj>* >> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* >> *Blog: http://movingaheadblog.blogspot.com >> <http://movingaheadblog.blogspot.com/>* >> > > > -- > Regards, > Uvindra > > Mobile: 777733962 > -- Mushthaq Rumy *Senior Software Engineer* Mobile : +94 (0) 779 492140 Email : musht...@wso2.com WSO2, Inc.; http://wso2.com/ lean . enterprise . middleware. <http://wso2.com/signature>
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev