Web.Contents is the primary way to access web-based data that doesn't offer an OData specification. This requires more effort--depending on what the API is expecting, you'll have to specify a number of different options (documented in detail in the function).
Web.Contents as opposed to the OData specification means that you will have to handle navigation and schema functionality in your connector, rather than having it immediately available. This will require additional work, documented in Handling Navigation Tables and Handling Schema.
Note: What is returned by Web.Contents is the binary value. To get usable information out of it, you will have to convert it. In the below example, after the binary for a url passed in as a parameter is acquired, it's converted to json via the
Json.Documentfunction. The resulting Record will then still need to be turned into a table.
TripPinImpl = (url as text) => let source = Web.Contents(url, [ Headers = DefaultRequestHeaders ]), json = Json.Document(source) in json;