Microsoft Access APIs? - rest

I've been digging through Microsoft's API pages (both the REST APIs and the Graph APIs) - but I'm having a hard time finding out if there is any way to access Microsoft Access through an API.
I'd like to be able to make an API call to get like the list of rows in a particular table or query for the list of tables altogether - or, on the flip side, add a row to an existing table. (Edit: I'd like to do this via REST calls and allow users to connect accounts so that many different people could access these things on their own). Does anyone know if this is possible? I'd super appreciate any links to any API docs or examples y'all have ^.^
For reference, I've been looking primarily at these two places:
https://learn.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0
https://learn.microsoft.com/en-us/office/client-developer/access/access-home

Access doesn't provide any functionality to directly access the data from a HTTP endpoint (REST API). It can only function as a database(backend) in this scenario and you would need to look into other solutions to get the data from the database and provide it from a HTTP endpoint (REST API).
If you're looking to use Microsoft technologies for this solution, then you can look into ASP.NET Core to provide the Web API functionality.
You'll need the Access Data Provider to be able to access data in a MS Access database, which as far as I know runs only on a Windows OS.

Related

SharePoint Rest API across subsites

I am trying to make a single rest api call from a top level site to get results from multiple picture libraries on multiple subsites. Is this possible and if not, what is the best way of approaching this.
I do have a rest api call to retrieve all subsites but I need to retrive results from libraries on a single request.
https://xxxx/_api/web/webs/?$select=title,ServerRelativeUrl"
Unfortunately it is not possible to query multiple lists using a single SharePoint REST API call, as to fetch data from a list you have to specify its parent web and title/ID. Usually for these kinds of queries the best choice is to utilize SharePoint Search REST API (Reference) or, if you can utilize some server side code, you can use the SPSiteDataQuery class to make fetch data from across whole sites or site collections (have a look at this article about SPSiteDataQuery).
Also, have a look at this SO question: Fetch data from multiple list sharepoint REST API in one Ajax call

Is there a complete list of sharepoint online rest api from official docs?

As title said, Is there a complete list of sharepoint online rest api from official docs?
I've done some research. However from the MS docs I can only find Complete basic operations using SharePoint REST endpoints and Get to know the SharePoint REST service.
Or maybe there just isn't one for the current Sharepoint Online implementation from official docs which have REST api reference and samples.
I was consider using MS graph as well, however it seems at the moment, the operations exposed by the Graph for SharePoint are very limited when compared to the native SharePoint REST API.
If there is a list, please share.
REST APIs of SharePoint are conformed to the specification of OData, we can use it like we use other OData APIs.
Here you go:
REST API reference and samples
More information about OData, we can refer to: OData - the best way to REST
If you have been authenticated (e.g. have an access token) and you can use the SharePoint API, then you can get a list of available endpoints for GET requests:
https://[tenant].sharepoint.com/[site]/_api/Web
The first part of the response provides a list of endpoints that you can explore further. [site] can be requested at any level (there can be many subsites below).
For example:
https://[tenant].sharepoint.com/[site]/_api/Web/SiteUsers
will allow you to display a list of users on a site and other possible endpoints, and
https://[tenant].sharepoint.com/[site]/[subsite]/_api/Web/Lists
will display all the lists that belong to the given subsite.
Unfortunately, I was not able to get a list of endpoints for POST requests such as: _api/web/lists/getByTitle('Documents')/breakroleinheritance(copyRoleAssignments=false, clearSubscopes=true)

API Authentication - Clients (consumers) vs. local users

I work for an ecommerce site and we are looking to expose much of our core functionality via a set of APIs. We plan on re-writing some of our own public facing applications (e.g. the main shop website and our mobile app) to call these new APIs also. We also want to offer some of these APIs out to third-parties who want to integrate with us.
My first question is - what is a suitable authentication method for these APIs? Everything I read is about OAuth, but am I right in saying that this doesn't fit in this case as we're not looking to use another log in system (e.g. Facebook, Google) but rather restrict access to our own API (so maybe an API key or JWT solution would be better?)
Secondly, our current website has it's own user accounts system. How do you offer /user endpoints (like GET user/1235/paymentmethods) in an API like this? Surely the actual user (website customer) needs to authenticate somehow in order for the given API consumer to access their data.
I've spent the last 2 days reading about this but I'm at a loss as to how to go about this! Any help much appreciated.

Custom authentication for REST client

We are looking to take an approach where there are service accounts in MarkLogic, but not accounts for all actual users. We would use a custom authentication token, JSWT in this case, and then via xdmp:login, elevate the calling user to the appropriate roles.
This is all fine if we create a custom HTTP server with our own rewriter to our modules. If we want to leverage the already built out REST API, is the only option to essentially create a wrapper around each of the XQuery modules that get dispatched to from the REST rewriter, in order to call the xdmp:login flow prior to fulfilling the rest of the REST api workflow? I did not see any way with the enhanced HTTP rewriter configuration to run arbitrary XQuery code before the dispatch flow.
Is this a feasible idea, or just a bad idea?
Best practice with the REST API is to use a middle tier. Exposing the REST API directly to your end users is analogous to doing so with an ODBC connection -- something you generally wouldn't do.
My suggestion is to set up a middle tier and use that gather credentials, then login as needed.
You can modify the out-of-the-box REST API endpoints to perform an xdmp:login, but of course that creates complexity when performing an upgrade, and when deploying an app. That's really a worst-case scenario.
Are you able to map all of your users to a much smaller set of ML users, perhaps on the order of dozens? Then a middle tier can do something similar to xdmp:login - it can look at the user's profile and determine which ML user to connect to ML with. That's not quite as flexible as xdmp:login, which lets you pick any roles you want without creating a user as a holder for them, but it may do the trick.

Build many websites based in a single RESTful API, how should I do?

I'm building a RESTful API (in PHP using Restler Framework v3.0) and I'm so confusing about what are the best pratices of how to use it.
I want to use the Rest API to authenticate users in more than one domain (same users, many domains) and get some "global" info (eg.: latest blog posts), but I have this questions.
My Questions:
Should I use REST instead of database queries?
Should I use the API only for XHR requests?
EDIT: I found this question that is like mine.
I want to build websites using the same users, get "latest posts", etc... If I make the REST API I could use it to get the users instead of querying database and duplicating code.