IP Library Granted Patent US 12,248,823
Granted Patent B2
US 12,248,823 · App. 18/527,879 · Granted Mar 11, 2025

Dynamic personalized API assembly

Inventors: Christopher David Boran (Burlington, MA); Victor Manuel Romero Carrasco (Malaga, ES)
Assignee: Salesforce, Inc.
G06F9/541G06F16/953H04L67/10G06F2209/541
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,248,823
App. No.
18/527,879
Granted
Mar 11, 2025
Kind
B2
Abstract

Methods, computer readable media, and devices for dynamic personalized API assembly are provided. One method may include receiving a data query from a client by a CDN, parsing the data query to generate a modified data query, transmitting the modified data query to an origin server, receiving a content from the origin server, generating a modified content based on the content, and sending the modified content to the client. Another method may include receiving an API call by an origin server, generating an API response by creating a payload file and adding markup directives indicating whether content is cacheable, and transmitting the API response.

Claims (54)

1. A computer-implemented method comprising:

receiving, by a content distribution network (CDN), a data query from a client, the data query including a plurality of data elements;

parsing, by the CDN, the data query to generate a modified data query, the modified data query including one or more of the plurality of data elements for which corresponding content was not previously cached;

transmitting, by the CDN, the modified data query to an origin server;

receiving, by the CDN, a content corresponding to the plurality of data elements and an indication specifying whether the content is cacheable in the CDN; and

sending, by the CDN, a modified content including responsive content comprising one or more of content previously cached on the CDN and the content obtained from the origin server, wherein sending the modified content comprises:

for the plurality of data elements:

including a data element and content corresponding to the data element based on whether the data element is one of the one or more of the plurality of data elements included in the modified data query, and in response to determining the data element is one of the one or more of the plurality of data elements included in the modified data query:

parsing the indication specifying whether the content is cacheable in the CDN, and in response to determining the indication specifying whether the content is cacheable in the CDN indicates the content corresponding to the data element of the one or more of the plurality of data elements included in the modified data query is cacheable, caching the content corresponding to the data element; and

including the data element and the content corresponding to the data element in the modified content.

2. The computer-implemented method of claim 1 , wherein parsing the data query to generate the modified data query comprises:

for the plurality of data elements:

determining whether the content corresponding to the plurality of data elements was previously cached; and

including the one or more of the plurality of data elements included in the modified data query in response to determining the content corresponding to the one or more of the plurality of data elements was not previously cached.

3. The computer-implemented method of claim 1 , wherein including the data element and content corresponding to the data element based on whether the data element is one of the one or more of the plurality of data elements included in the modified data query comprises:

in response to determining the data element is not one of the one or more of the plurality of data elements included in the modified data query:

retrieving content corresponding to the data element from a cache of the CDN; and

including the data element and the retrieved content in the modified content.

4. A computer-implemented method comprising:

receiving, by an origin server, an application programming interface (API) call from a content distribution network (CDN) in response to a data query received by the CDN from a client, the data query including a plurality of data elements, the API call including a modified data query including one or more of the plurality of data elements for which corresponding content was not previously cached in the CDN, and further, the API call requesting a portion of an aggregated content, the portion of the aggregated content corresponding to the one or more of the plurality of data elements for display by the client;

generating, by the origin server, an API response based on the API call by:

creating an API response payload file including a name::value pair, the name being the data element and the value being the portion of the aggregated content corresponding to the data element; and

adding, for the name::value pair, an indication specifying whether the portion of the aggregated content corresponding to the data element is cacheable in the CDN;

transmitting, by the origin server, the API response to the content distribution network (CDN); and

sending, by the CDN, a modified content including responsive content comprising one or more of content previously cached on the CDN and the content obtained in the API response received from the origin server, wherein sending the modified content comprises:

for the plurality of data elements:

including a data element and content corresponding to the data element based on whether the data element is one of the one or more of the plurality of data elements included in the modified data query, and in response to determining the data element is one of the one or more of the plurality of data elements included in the modified data query;

parsing the indication specifying whether the content is cacheable in the CDN, and in response to determining the indication specifying whether the content is cacheable in the CDN indicates the content corresponding to the data element of the one or more of the plurality of data elements included in the modified data query is cacheable, caching the content corresponding to the data element; and

including the data element and the content corresponding to the data element in the modified content.

5. The computer-implemented method of claim 4 , wherein:

the API call requests content corresponding to a plurality of data elements; and

generating the API response based on the API call comprises:

including a plurality of name::value pairs in the API response payload file; and

adding, for the plurality of name::value pairs, an indication specifying whether the content in the value is cacheable.

6. The computer-implemented method of claim 4 , wherein the API response payload file is written in a text-based, human-readable data interchange format.

7. The computer-implemented method of claim 4 , wherein the API call is based on a modified data query generated by a content distribution network (CDN).

8. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, are configured to cause said processor to perform operations comprising:

receiving, by a content distribution network (CDN), a data query from a client, the data query including a plurality of data elements;

parsing, by the CDN, the data query to generate a modified data query, the modified data query including one or more of the plurality of data elements for which corresponding content was not previously cached;

transmitting, by the CDN, the modified data query to an origin server;

receiving, by the CDN, a content corresponding to the plurality of data elements and an indication specifying whether the content is cacheable in the CDN; and

sending, by the CDN, a modified content including responsive content comprising one or more of content previously cached on the CDN and the content obtained from the origin server, wherein sending the modified content comprises:

for the plurality of data elements:

including a data element and content corresponding to the data element based on whether the data element is one of the one or more of the plurality of data elements included in the modified data query and in response to determining the data element is one of the one or more of the plurality of data elements included in the modified data query:

parsing the indication specifying whether the content is cacheable in the CDN, and in response to determining the indication specifying whether the content is cacheable in the CDN indicates the content corresponding to the data element of the one or more of the plurality of data elements included in the modified data query is cacheable, caching the content corresponding to the data element; and

including the data element and the content corresponding to the data element in the modified content.

9. The non-transitory machine-readable storage medium of claim 8 , wherein parsing the data query to generate the modified data query comprises:

for the plurality of data elements:

determining whether the content corresponding to the plurality of data elements was previously cached; and

including the one or more of the plurality of data elements included in the modified data query in response to determining the content corresponding to the one or more of the plurality of data elements was not previously cached.

10. The non-transitory machine-readable storage medium of claim 8 , wherein including the data element and content corresponding to the data element based on whether the data element is one of the one or more of the plurality of data elements included in the modified data query comprises:

in response to determining the data element is not one of the one or more of the plurality of data elements included in the modified data query:

retrieving content corresponding to the data element from a cache of the CDN; and

including the data element and the retrieved content in the modified content.

Assignments (2)
CHANGE OF NAME Recorded Sep 23, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069016/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2023
From: BORAN, CHRISTOPHER DAVID; CARRASCO, VICTOR MANUEL ROMERO
To: SALESFORCE.COM, INC.
Reel/Frame 065751/0194 →
Continuity (3)
Continuation 18090745 · Dec 29, 2022
Continuation 17158163 · Jan 26, 2021
Related Publication 20240103938A1 · Mar 28, 2024
References Cited (9)
US 11556399B2 · Boran · 2023 [cited by applicant]
US 11836540B2 · Boran · 2023 [cited by examiner]
US 20020161835A1 · Ball · 2002 [cited by examiner]
US 20040243704A1 · Botelho · 2004 [cited by examiner]
US 20070180099A1 · Tsimelzon · 2007 [cited by applicant]
US 20130097320A1 · Ritter · 2013 [cited by applicant]
US 20140351860A1 · Chen · 2014 [cited by applicant]
US 20160173637A1 · Mastrangelo · 2016 [cited by examiner]
US 20190317776A1 · Walsh · 2019 [cited by applicant]