+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
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev