-
Download a snapshot build
-
Start Optic server `java -jar path/to/server.jar
-
Clone the Optic Skills SDK Repo
-
Run
yarn install
-
explore code within /examples
//input | |
const toDo = mongoose.model('todo', new mongoose.Schema({ | |
'message': 'string', | |
'isDone': 'string' | |
})) | |
//output | |
app.post('/todo', (req, res)=> { | |
new toDo({ | |
message: req.body.message, |
/* | |
Express Parameter Lens | |
*/ | |
import {js} from '../sdk-objects/lens/Snippet' | |
import {literalWithValue, tokenWithValue} from "../sdk-objects/lens/Finders"; | |
const lens = js` | |
req.query.name | |
` |
{ | |
in: { | |
type: "string", | |
enum: ["query", "body", "params", "header"], | |
from: tokenWithValue('query') | |
}, | |
name: { | |
type: "string", | |
from: tokenWithValue('name') | |
} |
Ambasador Joseph P. Kennedy Sr. + Rose Fitzgerald | |
- Joseph P Kennedy Jr. | |
- John F. Kennedy + Jackie Bouvier | |
- Amb. Caroline Kennedy | |
- JFK Jr. | |
- Rosemary Kennedy | |
- Kathleen Kennedy | |
- Eunice Kennedy + Amb. Sargent Shiver | |
- Maria Shiver | |
- Patricia Kennedy |
Problems:
- a lot of the complexity in modern programming comes from connecting various systems together & current paradigms aren't well suited for this kind of work
- it's easy to share code, but much harder to package up & share features seamlessly
Key Idea: Compile graphs should be shared between projects so compilers can understand how to connect to the higher level interfaces a program exposes.
General purpose programming languages have a wide range of uses because they are built on foundational abstractions. But this flexibility comes at a cost: there's a lot of distance between those higher level abstractions that we deal with (APIs, queries, data models, streams, HTTP requests, etc) and the language itself. This distance is the reason it's ridiculously hard to do something like code completion or compile-time-feedback for a higher order construct like a request to a specific endpoint.
It's easy to code complete a function because it's represented by a FunctionNode in the A
void setup() { | |
// initialize serial communication at 9600 bits per second: | |
Serial.begin(9600); | |
} | |
// the loop routine runs over and over again forever: | |
void loop() { | |
// read the input on analog pin 0: | |
int sensorValue = analogRead(A0); | |
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V): |
{ | |
"swagger": "2.0", | |
"info": { | |
"description": "There is also a work-in-progress [Postman API reference](https://documenter.getpostman.com/view/4508214/RW8FERUn).\n", | |
"version": "4.0.0", | |
"title": "Mattermost API Reference", | |
"termsOfService": "https://about.mattermost.com/default-terms/", | |
"contact": { | |
"email": "[email protected]" | |
}, |
{ | |
"swagger": "2.0", | |
"info": { | |
"title": "undefined/mattermost-api4", | |
"version": "2.0.0" | |
}, | |
"basePath": "/api/v4", | |
"paths": { | |
"/actions/dialogs/open": { |
What is the distribution of licesne fields? | |
Sampling 355 APIs | |
NONE : 276 | |
Apache 2.0 : 15 | |
MIT : 12 | |
Apache 2.0 License : 3 | |
Terms and Conditions : 2 | |
Creative Commons : 2 |