+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

Reply via email to