Skip to content

Instantly share code, notes, and snippets.

View ldclakmal's full-sized avatar
🎯
Focusing

Chanaka Lakmal ldclakmal

🎯
Focusing
View GitHub Profile
@ldclakmal
ldclakmal / http_server.go
Last active March 5, 2019 11:58
Go HTTP Server
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
@ldclakmal
ldclakmal / .gitignore
Last active May 4, 2023 13:21
A powerful git-ignore file all programming languages and IDEs
# Build tool files
.gradle/
.mvn/
/out
/build
node_modules/
# Compiled class file
*.class
@ldclakmal
ldclakmal / ballerina-github-project.bal
Created November 5, 2018 08:17
Print GitHub projects and list of projects withing a repository
import ballerina/config;
import ballerina/http;
import ballerina/io;
import ballerina/log;
import wso2/github4;
endpoint github4:Client githubClient {
clientConfig: {
auth: {
scheme: http:OAUTH2,
@ldclakmal
ldclakmal / http2-server-push--client-1.1.0.bal
Last active January 17, 2020 09:56
Ballerina client for HTTP/2 server push
import ballerina/http;
import ballerina/log;
http:Client clientEP = new("http://localhost:9095", config = { httpVersion: "2.0" });
public function main() {
// Submit a `GET` request.
http:Request serviceReq = new;
http:HttpFuture httpFuture = checkpanic clientEP->submit("GET", "/hello/sayHello", serviceReq);
@ldclakmal
ldclakmal / http2-server-push--server-1.1.0.bal
Last active January 27, 2023 03:23
Ballerina service for HTTP/2 server push
import ballerina/http;
listener http:Listener helloWorldEP = new(9095, config = { httpVersion: "2.0" });
service hello on helloWorldEP {
resource function sayHello(http:Caller caller, http:Request req) {
// Send a Push Promises for 2 resources with 2 methods.
http:PushPromise promise1 = new(path = "/resource1", method = "GET");
@ldclakmal
ldclakmal / http2-server-1.1.0.bal
Last active January 17, 2020 09:54
Ballerina HTTP/2 service
import ballerina/http;
listener http:Listener helloWorldEP = new(9095, { httpVersion: "2.0" });
service hello on helloWorldEP {
resource function sayHello(http:Caller caller, http:Request req) {
checkpanic caller->respond("Ballerina HTTP/2 Response !");
}
}
@ldclakmal
ldclakmal / http2-client-1.1.0.bal
Last active January 17, 2020 09:54
Ballerina HTTP/2 client
import ballerina/http;
import ballerina/log;
http:Client clientEP = new("http://localhost:9095", config = { httpVersion: "2.0" });
public function main() {
var responseVar = clientEP->post("/hello/sayHello", "Hello Ballerina!");
if (responseVar is http:Response) {
var payload = responseVar.getTextPayload();
if (payload is string) {
@ldclakmal
ldclakmal / auth.bal
Created June 23, 2018 12:03
Ballerina authentication sample
import ballerina/io;
import ballerina/http;
import ballerina/config;
import ballerina/runtime;
function main(string... args) {
testNoAuth();
testBasicAuth();
testOAuth2();
testJWTAuth();
@ldclakmal
ldclakmal / jwt-auth-0.980.0.bal
Last active January 17, 2020 10:40
Ballerina JWT authentication
endpoint http:Client jwtAuthClient {
url: "https://www.example.org/api/v1",
auth: {
scheme: http:JWT_AUTH
}
};
public function testJWTAuth() {
setJwtTokenToAuthContext();
string requestPath = "/employees";
@ldclakmal
ldclakmal / oauth2-0.980.0.bal
Last active January 17, 2020 10:42
Ballerina OAuth2 authentication
endpoint http:Client oauthClient {
url: "https://www.example.org/api/v1",
auth: {
scheme: http:OAUTH2,
accessToken: "yf29.PlrfBb0gtDFXsbnE_LcDCG-Dz3djEp05zM9y-IPR8CsZz90XwOEyrhqeXPPYxubY9RHMIFzoV2",
clientId: "50332352747-270vchcnbhbl4gfn1v91hl0fru.apps.example.org",
clientSecret: "PrfEadE4s2SDG4hJ",
refreshToken: "5/lk-u0Ywefgh52-v0_OLOkDhlsA9xIadf4qqD3TMQvc",
refreshUrl: "https://www.example.com/oauth2/v3/token"
}